Matlab微积分问题计算机求解实验课件_第1页
Matlab微积分问题计算机求解实验课件_第2页
Matlab微积分问题计算机求解实验课件_第3页
Matlab微积分问题计算机求解实验课件_第4页
Matlab微积分问题计算机求解实验课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

Matlab微积分问题计算机求解实验Matlab微积分问题计算机求解实验Matlab微积分问题计算机求解实验微积分实验微积分实验符号表达式基础操作1符号微积分2数值积分3卫星轨道的长度4国土面积的计算5sym函数用来建立单个符号变量,一般调用格式为:符号对象的建立:sym和syms符号对象的建立例:>>

a=sym('a')符号变量

=

sym(A)参数A

可以是一个数或数值矩阵,也可以是字符串a

是符号变量b

是符号常量>>b=sym(1/3)c

是符号矩阵>>c=sym('[1ab;cd]')符号对象的建立:sym和syms符号对象的建立syms命令用来建立多个符号变量,一般调用格式为:syms符号变量1符号变量2...符号变量n例:>>

symsabc>>a=sym('a');>>b=sym('b');>>c=sym('c');经常用符号表达式的建立:例:建立符号表达式通常有以下2种方法:(1)用sym函数直接建立符号表达式。

(2)使用已经定义的符号变量组成符号表达式。>>y=sym('sin(x)+cos(x)')符号表达式的建立符号表达式的替换subs(f,x,a)用a替换字符函数f中的字符变量x

a是可以是数/数值变量/表达式或字符变量/表达式若x是一个由多个字符变量组成的数组或矩阵,则a应该具有与x相同的形状的数组或矩阵。用给定的数据替换符号表达式中的指定的符号变量subs举例>>f=sym('2*u');>>subs(f,'u',2)>>f2=subs(f,'u','u+2')>>a=3;>>subs(f2,'u',a+2)>>subs(f2,'u','a+2')>>symsxy>>f3=subs(f,'u',x+y)>>subs(f3,[x,y],[1,2])ans=4f2=2*(u+2)ans=14ans=2*((a+2)+2)f3=2*x+2*yans=6例:指出下面各条语句的输出结果f=2*u下面的命令运行结果会是什么?>>

subs(f3,[x,y],[x+y,x+y])计算函数值练习:符号表达式的数值化R=vpa(A)或R=vpa(A,d)对符号表达式A求给定精度的值;d:输出数值的有效位数Vpa的默认精度是23位。对符号求值的命令为vpa,即Variableprecisionarithmeticdigits(25);p=vpa(pi)w=vpa('(1+sqrt(5))/2',4)计算极限limit(f,x,a):

计算limit(f,a):

当默认变量趋向于a时的极限limit(f):

计算a=0时的极限limit(f,x,a,'right'):

计算右极限limit(f,x,a,'left'):

计算左极限例:计算,>>symsxhn;>>L=limit((log(x+h)-log(x))/h,h,0)>>M=limit((1-x/n)^n,n,inf)计算导数g=diff(f,v):求符号表达式f关于v的导数g=diff(f):求符号表达式f关于默认变量的导数g=diff(f,v,n):求f关于v的n阶导数diff>>symsx;>>f=sin(x)+3*x^2;>>g=diff(f,x)>>z=y^2*sin(x^2);>>dxd2y=diff(diff(z,x,1),y,2)计算导数练习:计算积分int(f,v,a,b):计算定积分int(f,a,b):计算关于默认变量的定积分int(f,v):计算不定积分int(f):计算关于默认变量的不定积分>>symsx;f=(x^2+1)/(x^2-2*x+2)^2;>>I=int(f,x)>>K=int(exp(-x^2),x,0,inf)例:计算和计算积分练习:符号求和>>symsn;f=1/n^2;>>S=symsum(f,n,1,inf)>>S100=symsum(f,n,1,100)symsum(u,n,n0,nn):symsum(f,a,b):

关于默认变量求和例:计算级数及其前100项的部分和例:计算函数级数>>symsnx;f=x/n^2;>>S=symsum(f,n,1,inf)Taylor级数展开taylor(f):求f在默认自变量=0处的5阶Taylor级数展开式定积分taylor(f,n,x):求f在默认自变量x=0处的n-1阶Taylor级数展开式定积分taylor(f,n,x,a):求f在默认自变量x=a处的n-1阶Taylor级数展开式定积分>>symsx;taylor(exp(x),x,7,-1)上机作业1.

2.3.4.5.数值积分函数quad()采用递推自适应Simpson法计算积分,精度较高,较常使用。q=quad(fun,a,b)q=quad(fun,a,b,tol)功能:求一元函数fun的积分q,积分上限和下限分别为a和b,绝对误差为tol,默认时取值10^-6,函数fun是待求解的对象,可以是字符串、内联函数、M函数文件名的函数句柄。SimpsonFormula数值积分【例】求exp(-x2)在[0,1]上的积分。1、f=inline(‘exp(-x.^2)’);%内联函数q1=quad(f,0,1)数值积分【例】求exp(-x2)在[0,1]上的积分。2、编写被积函数表达式,函数名为quad1.mfunctionf=quad1(x)f=exp(-x.^2);>>q2=quad('quad1',0,1)数值积分【例】求exp(-x2)在[0,1]上的积分。3、编写被积函数表达式,函数名为f=@(x).exp(-x.^2);>>q2=quad(f,0,1)数值积分(2)梯形法(被积函数由一个表格定义)trapz函数采用梯形法求取数值积分,适用于由表格形式定义的函数关系的求定积分问题,求值速度快,但精度差。q=trapz(Y)q=trapz(X,Y)其中向量X,Y定义函数关系Y=f(X)。【例】求exp(-x2)在[0,1]上的积分。X=0:0.01:1;Y=exp(-X.^2);q=trapz(X,Y)上机作业取一定数量的点,利用梯形数值积分公式近似计算圆周率pi数值积分(3)二重积分的数值求解dblquad函数就可以直接求出上述二重定积分的数值解。该函数的调用格式为:I=dblquad(f,a,b,c,d,tol,trace)功能:该函数求f(x,y)在[a,b]×[c,d]区域上的二重定积分。参数tol,trace的用法与函数quad完全相同。trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,缺省时取trace=0。数值积分【例】计算二重定积分①(1)建立一个函数文件fxy.m:functionf=fxy(x,y)f=exp(-x.^2/2).*sin(x.^2+y);(2)调用dblquad函数求解。I=dblquad('fxy',-2,2,-1,1)②>>f=inline('exp(-x.^2/2).*sin(x.^2+y)')>>I=dblquad(f,-2,2,-1,1)Fourier级数定理设周期为的周期函数f(x)满足收敛定理条件,则它的Fourier级数展开式为:

其中系数为:

Fourier级数的Matlab程序[A,B,F]=fseries(f,x,n,a,b)其中f为待展开的函数,x为自变量,n为展开项数,[a,b]为展开区间,省略为[-pi,pi],[A,B]为记录Fourier级数的系数向量F为返回的Fourier级数的展开式Fourier级数的Matlab程序具体程序:function[A,B,F]=fseries(f,x,n,a,b)ifnargin==3a=-pi;b=pi;end%若输入为3个参数,表示函数f(x)在[-pi,pi]内进行展开L=(b-a)/2;

Fourier级数的Matlab程序ifa+bsubs(f,x,x+L+a);endA=int(f,x,-L,L);%f(x)在[-pi,pi]内展开B=[];fori=1:nan=int(f*cos(i*pi*x/L),x,-L,L)/L;bn=int(f*sin(i*pi*x/L),x,-L,L)/L;endFourier级数的Matlab程序A=[A,an];%记录所有cos前面的系数B=[B,bn];%记录所有sin前面的系数F=F+an*cos(i*pi*x/L)+bn*sin(i*pi*x/L);%记录得到的Fourier展开式

Fourier级数的Matlab程序例:考虑方波函数f(x)=abs(x)/x,定义域为[-pi,pi],并且x不等于0。将f(x)进行Fourier展开,具体命令如下:symsx;f=abs(x)/x;%给出待展开的函数xx=[-pi:pi/200:pi];xx=xx(xx~=0);xx=sort([xx,-eps,eps]);Fourier级数的Matlab程序yy=subs(f,x,xx);%计算f(x)的值fori=1:20[A,B,F]=fseries(f,x,n);y=subs(F,x,xx);subplot(4,5,n);plot(xx,yy);%画出f(x)的图像holdonplot(xx,y);%画出Fourier级数的图像endFourier级数的Matlab程序练习:试求出函数y=sin(x)在[0,pi/2]上的Fourier级数展开式。卫星的轨道长度我国第一颗人造地球卫星近地点距地球表面为h=439km,,远地点距地球表面H=2384km,地球半径为R=6371km,求该卫星的轨道长度。问题卫星的轨道长度人造卫星轨道可视为平面上的椭圆,由于地球位于卫星椭圆轨道的一个焦点上,根据近地点距离和远地点距离可分别计算出椭圆长半轴、椭圆半焦距、椭圆短半轴为4.8707e+004国土面积的计算现要根据瑞士地图计算其国土面积。于是对地图作如下的测量:以西向东方向为x轴,由南向北方向为y轴,选择方便的原点,并将从最西边界到最东边界在x轴上的区间适当地划分为若干段,取足够多的分点xi,在每个分点的y方向测出南边界点和北边界点的对应坐标y1和坐标y2,数据如表(单位mm):根据地图比例知18mm相当于40km,试由上表计算瑞士国土的近似面积(精确值为41822km2)问题国土面积的计算x7.010.513.017.534.040.544.548.056.0y1444547505038303034y24459707293100110110110x61.068.576.580.591.096.0101.0104.0106.5y1363441454643373328y211711811611

温馨提示

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

评论

0/150

提交评论