首页/文章/ 详情

latex()、ploy2sym()、symsum()的妙用

3年前浏览2603

image.png

 过冷水诚挚邀请你加入Matlab仿真秀官方交流群进行Matlab学习、问题咨询、 Matlab相关资料下载,群号:927550334 

QQ图片20210424105303.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 x

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

Y=latex(y)

图片

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

figure1 = figure('Color',[1 1 1]);
axes1 = axes('Parent',figure1,'Position',[0.13 0.11 0.8 0.8]);
axis off
hold(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','bo

图片

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

图片

    左边方框给出了我们拟合结果,对于初入新手而言多项式已经确定,任务完成,过冷水在经常使用工具箱拟合时颇感不便,每次确定好系数后都需要手敲系数重新输入公式真的好麻烦,一点都不自动化,于是自己就总结出了一套小技巧。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)

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

图片

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

图片

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

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

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


图片

        过冷水发表于 仿真秀 平台原创文章,未经授权禁止私自转载,如需转载请需要和作者沟通表明授权声明,未授权文章皆视为侵权行为,必将追责。如果您希望加入Matlab仿真秀官方交流群进行Matlab学习、问题咨询、 Matlab相关资料下载均可加群:927550334。

精品回顾

 matlab绘制农夫过河动态图

分子动力学的原子空间运动轨迹演示编程

过冷水带你用matlab制作演示动画

python批量移动文件&重命名代码分享

过冷水和你分享 matlab读取存储各种文件的方法 文末有独家金曲分享

image.png

理论科普代码&命令求解技术MATLAB
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-05-13
最近编辑:3年前
过冷水
博士 | 讲师 讨论号:927550334
获赞 359粉丝 184文章 107课程 11
点赞
收藏
作者推荐

¥5 5.0
未登录
1条评论
Manchi
踏实认真
3年前
不错
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈