MATLAB中的数值计算与符号计算_第1页
MATLAB中的数值计算与符号计算_第2页
MATLAB中的数值计算与符号计算_第3页
MATLAB中的数值计算与符号计算_第4页
MATLAB中的数值计算与符号计算_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微积分实验(2)MATLAB中的数值计算与符号计算,本教程介绍MATLAB在数值计算与符号计算方面的应用.要注意的是MATLAB在数值计算方面,功能强大,但在符号计算方面,直到V5.1版后,才引入Waterloo公司的MapleV4版的核心计算引擎(目前Maple的版本是V7),因此,它的符号计算功能有限,还不能称得上一个真正的数学符号计算软件包.下面我们按照微积分课程的授课顺序,介绍一下MATLAB在这方面的应用.请注意,以下的所有文字说明均用黑色字,MATLAB语句,用红色字,MATLAB的输出结果,用兰色字.,函数复合命令格式:compose(f,g,x),即求f(g(x);例子:symsf,x;f=sin(x);compose(f,f,x)ans=sin(sin(x)symsf,x;f=sin(x);g=1+x2;compose(f,g,x)ans=sin(1+x2),设f(sin(x/2)=cos(x)+1,求f(x)与f(cos(x/2).symsx,f;old=cos(x);new=1-2*sin(x/2)2;subs(f(sin(x/2)=cos(x)+1,old,new)ans=f(sin(x/2)=(1-2*sin(x/2)2)+1symsu;subs(ans,sin(x/2),u)ans=f(u)=2-2*u2,Symsx,f,g;f=x/sqrt(1+x2);g=x;g=simple(compose(f,f,x)f=x/(1+x2)(1/2)g=x/(2*x2+1)(1/2)g=simple(compose(g,f,x)g=x/(3*x2+1)(1/2)g=simple(compose(g,f,x)g=x/(4*x2+1)(1/2)g=simple(compose(g,f,x)g=x/(5*x2+1)(1/2),symsx,f;f=sin(x)2/(1+cot(x)+cos(x)2/(1+tan(x);diff(f,x)Ans=2*sin(x)/(1+cot(x)*cos(x)-sin(x)2/(1+cot(x)2*(-1-cot(x)2)-2*cos(x)/(1+tan(x)*sin(x)-cos(x)2/(1+tan(x)2*(1+tan(x)2)simple(ans)ans=-2*cos(x)2+1diff(f,x,2)ans=2*cos(x)2/(1+cot(x)-4*sin(x)/(1+cot(x)2*cos(x)*(-1-cot(x)2)-2*sin(x)2/(1+cot(x)+2*sin(x)2/(1+cot(x)3*(-1-cot(x)2)2+2*sin(x)2/(1+cot(x)2*cot(x)*(-1-cot(x)2)+2*sin(x)2/(1+tan(x)+4*cos(x)/(1+tan(x)2*sin(x)*(1+tan(x)2)-2*cos(x)2/(1+tan(x)+2*cos(x)2/(1+tan(x)3*(1+tan(x)2)2-2*cos(x)2/(1+tan(x)2*tan(x)*(1+tan(x)2)simple(ans)ans=4*sin(x)*cos(x),symsxyzfg;f=exp(z)-z+x*y-3;g=jacobian(f,x,y,z)g=y,x,exp(z)-1g(1)ans=yg(2)ans=xg(3)ans=exp(z)-1g(1)/g(3)ans=y/(exp(z)-1),symsxyta;x=a*cos(t)3;y=a*sin(t)3;y=simple(diff(y,t)/diff(x,t)y=-tan(t)simple(diff(y,t)/diff(x,t)ans=1/3/cos(t)4/a/sin(t),symsx;int(1-sin(x)+cos(x)/(1+sin(x)-cos(x)ans=2*log(tan(1/2*x)-2*log(tan(1/2*x)+1)-2*atan(tan(1/2*x),simple(ans)ans=2*log(tan(1/2*x)-2*log(tan(1/2*x)+1)-2*atan(tan(1/2*x),MATLAB做不到这一点,但这个积分在Mathematica中的计算结果为,先画出图形,symsxy;y=2*x3-6*x2-18*x+7;ezplot(y,-5,5),再求出驻点(有2个,分别为-1及3)solve(diff(y,x),x)ans=-13求函数的2阶导数y=diff(y,x,2)y=12*x-12,计算2阶导数在驻点处的函数值x=-1;eval(y)ans=-24x=3;eval(y)ans=24由高等数学定理知,在-1处取得极大值,在3处取得极小值,这个积分无法计算出理论解,只能计算数值解symsx;int(sin(sin(x),1,10)ans=int(sin(sin(x),x=1.10),第一种方法,用梯形法计算,其命令为trapz(x,y),其中x,y是具有相同长度的向量,表示用梯形法分割时,数据点上的值.此积分的实际值为0.199(精确到20位)x=1:0.1:10;y=sin(sin(x);trapz(x,y)ans=1.1981,第二种方法,用Simpson(辛普森法)计算,其命令是quad(f,a,b,tol),其中a,b为积分的上下限,tol为迭代误差,其默认值为10(-3)quad(sin(sin(x),1,10,10(-7)ans=1.1990第三种方法,用Newton-cotes法(牛顿-科特茨法),其命令是quad8(f,a,b,tol),其用法与Simpson法一样quad8(sin(sin(x),1,10,10(-3)ans=1.1990Newton-cotes法的计算精度比其它2种要高,例如,在相同的计算量下,比较quad(sin(sin(x),1,10,10(-3)ans=1.1976,命令:dblquad(f,xmin,xmax,ymin,ymax)先画出区域的图形symsxy;ezplot(y2-x,0,5,-3,3);holdon;ezplot(x-2,0,5,-3,3);holdoff,再求2条曲线的2个交点symsxy;x,y=solve(y2-x=0,x-2=y)x=14y=-12因此,求出的2个交点是(1,-1)及(4,2),这是一个左右型区域,应该先对x积分,再对y积分比较简单,因此有symsxy;dblquad(x*y,y2,y+2,-1,2)结果,MATLAB会提示出现错误,是语法错误吗?将上面改成,symsxy;dblquad(x*y,0,1,-1,2)ans=0.7500这说明,不是语法错误.实际上,这个命令只能计算矩形区域的积分,如果积分区域不上矩形区域,那么,你就得定义一个二元函数,让这个函数在积分区域外为0,比如,对此积分,定义,而且,它也只能计算二重积分的数值解.,关于微分方程的求解,命令格式:dsolve(eqn1,eqn2,.);如果不额外说明,默认的变量是tdsolve(Dy=y2*(1-y)Warning:Explicitsolutioncouldnotbefound;implicitsolutionreturned.InC:MATLABR12toolboxsymbolicdsolve.matline292ans=t+1/y-log(y)+log(-1+y)+C1=0dsolve(D2y=-a2*y,y(0)=1,Dy(pi/a)=0)ans=cos(a*t)x,y=dsolve(Dx=y,Dy=-x,x(0)=0,y(0)=1)x=sin(t)y=cos(t),关于数项级数求和问题.,命令格式:symsu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论