latex求和符号上下标_latex()、ploy2sym()、symsum()的妙用

6f3fbb756ad5eabb256d0d8b21a9c64a.png

过冷水在进行学习过程中总是遇到一些看似无关紧要的问题,做起来却很繁琐,比如给你一个函数:

4794c151b2660d7a368e466e896327b9.png

做具体计算的时候需要把它写入Matlab中,按照阅读习惯你总是会写成这样:

y=log(n1/(x1*n1+x2*n2*m21))+x2*((n2*m21)/(x1*n1+x2*n2*m21)-(n1*m12)/(x2*n2+x2*n1*m12)) ...-(x2^2/2)*((c1*m21^2*log(m21))/(x1+x2*m21)^2-(c2*m12*log(m12)/(x2*n2+x1*n1*m12)^2))

有人问我你这个输入对不对,有没有错误,我就笑了当然是对的,不信你自己去检查啊!过冷水在实际运行中重视要检查好几遍公式有没有输错项。一旦计算错误,总是怀疑是不是自己公式输错了回头再核验一遍,检查一遍输入公式感觉过了好几个世纪。为何matlab不能人性化的以我们比较习惯的方式呈现公式?还是电脑语言和人脑思维有不可逾越的鸿沟?知道我接触到latex()函数。还是自己接触的知识少。关于latex()你可以这样用:

Y=latex(y)

78f00eb96b84232432944a7bd2033e37.png

咋一看,这有什么用?更加复杂了,纯粹是画蛇添足。若是读者之前有看过推文matlab绘图(五),用一点点贯通的思想就可以把该形式和绘图联系起来。

figure1 = figure('Color',[1 1 1]);axes1 = axes('Parent',figure1,'Position',[0.13 0.11 0.8 0.8]);axis offhold(axes1,'on');text('Parent',axes1,'FontSize',16,'FontName','Times New Roman','Interpreter','latex','String',str,'Position',[-0.0829467939972715 0.339583333333333 0],'Visible','on');set(axes1,'FontName','Times New Roman','FontSize',14,'FontWeight','bold');

585a3baf5e57703f9be9b1bb2b44aebb.png

    这段代码将会给出我们这么一副图,这样对比起来是不是就容易的多了,这个灵感也是过冷水无意间想到的,简单的代码我们要学会妙用。在实践过程中,过冷水还遇到多项式拟合的问题,在我们不知道实验数据结构的时候通常都是先画出图像,对图像进行结构分析然后再用具体函数去拟合系数。多项式拟合大家用的比较多一点,便捷一点的方法是用工具箱拟合多项式,可以实时调节参数如下图:

e02f4f5b77146a8ad3626f152cb0176b.png

左边方框给出了我们拟合结果,对于初入新手而言多项式已经确定,任务完成,过冷水在经常使用工具箱拟合时颇感不便,每次确定好系数后都需要手敲系数重新输入公式真的好麻烦,一点都不自动化,于是自己就总结出了一套小技巧。1工具箱确定函数形式;2 p=polyfit(x,y,n)求系数;3 y=ploy2sym(p);

X=linspace(0.12,1,50);x=1./X;y=(x.^4.*exp(x))./(exp(x)-1).^2;p=polyfit(x,y,5);f=poly2sym(p)f =- (7818024459947303*x^5)/2305843009213693952 + (6155067065834809*x^4)/72057594037927936 - (1694715688677703*x^3)/2251799813685248 + (5570666957581787*x^2)/2251799813685248 - (6080212468662527*x)/4503599627370496 + 4204837723286035/9007199254740992

很便捷吧!因为为热爱,所以精通。过冷水在学习过程的总是会遇到比人遇不到的麻烦,你学或者不学困难都在哪里,不增不减,与其逃避,不如做真正的勇士,去坦然面对如下问题:

083e010d4a3bae10d04b64b96c1aeca5.png

请问这是该如何才能是实现其编程化,这是一个大复杂的问题,我们的把复杂的问题简单化,来看看这么一个问题:

babc350a716ec87c6bd46682f24e71e4.png

这个时候又有一个函数symsum,可以实现累计求和的目的。

syms n symsum((-1)^n*0.5^n/n,n,1,inf)ans =-log(3/2)

通过该函数可以实现符号表达式的累计求和,为我们的big problem 提供解决思路。具体怎么实现还是一个复杂的问题,思路讲起来有点麻烦,预知后事且听下回分解。

往期回顾>>>>>>

matlab常用函数

matlab符号计算(二)

matlab符号计算(一)

matlab常量及常用命令

欢迎各路英雄豪杰来搞

feb0be33a2b1a16beced9c2721cb1035.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值