数学建模Matlab符号计算描述ppt课件

上传人:钟*** 文档编号:1346288 上传时间:2019-10-15 格式:PPT 页数:36 大小:430.50KB
返回 下载 相关 举报
数学建模Matlab符号计算描述ppt课件_第1页
第1页 / 共36页
数学建模Matlab符号计算描述ppt课件_第2页
第2页 / 共36页
数学建模Matlab符号计算描述ppt课件_第3页
第3页 / 共36页
点击查看更多>>
资源描述
MATLAB的符号运算,1,一、相关知识,在微积分中,我们曾经学习了求函数的极限和微分的运算,那时我们根据微积分的原理,学习了一整套各种各样的方法,其中包括了许多技巧,现在我们尝试用软件来解决这样的问题。 在MATLAB中,常用的初等函数表示方法如下:,2,3,4,MATLAB提供的命令函数limit()可以完成极限运算,其调用格式如下: limit(F,x,a,left) 该命令对表达式F求极限,独立变量x从左边趋于a,函数中除F外的参数均可省略,left可换成right。举例如下: 例1:求极限 。 解:可用以下程序完成: clear F=sym(1+a/x)x) limit(F,x,inf,left),5,结果为exp(a)。其中,语句F=sym(1+a/x)x)表示定义符号表达式 也可用以下的语句来完成: clear; syms x %这里是把x先说明成符号。 F=(1+a/x)x %这里的定义形式和前面不同。 limit(F, x, inf, left) %这里的x本身就是符号,因 此不需要单引号。,6,MATLAB提供的函数diff()可以完成对给定函数求导函数的运算,其调用格式如下: diff(fun,x,n) 其意义是求函数fun关于变量x的n阶导数,n为1时可省略。这里的fun用上例的后一种方式来定义较为妥当。我们看下面的例: clear; syms x %这里是把x先说明成符号。 F=(1+a/x)x %这里的定义形式和前面不同。 limit(F, x, inf, left) %这里的x本身就是符号,因 此不需要单引号。,7,MATLAB提供的函数diff()可以完成对给定函数求导函数的运算,其调用格式如下: diff(fun,x,n) 其意义是求函数fun关于变量x的n阶导数,n为1时可省略。这里的fun用上例的后一种方式来定义较为妥当。我们看下面的例: 例2:求函数 的一阶和三阶导数。,8,解:可用以下程序完成: clear; syms x y=log(x+2)/(1-x); dy=diff(y,x) dy3=diff(y,x,3) pretty(dy3) 这里用到的另一个函数:pretty(),其功能是使它作用的表达式更符合数学上的书写习惯。,9,二、实验内容,1求下列极限,将完成实验的程序写到文件sy31.m中: 1) 2) 3) 4) 5),10,2求下列函数的导数,将完成实验的程序写到文件sy32.m中: 1) 2) 3) 4) ,计算 5) ,计算,11,MATLAB中的积分运算,12,一、相关知识,在微积分中,我们曾经学习了求函数不定积分和定积分的运算,那时我们根据微积分的原理,学习了一整套各种各样的方法,其中包括了许多技巧,现在我们尝试用软件来解决这样的问题。 MATLAB提供的命令函数int()可以完成积分运算,其调用格式有如下几种: int(fun) 计算函数fun关于默认变量的不定积分 int(fun,x) 计算函数fun关于变量x的不定积分 int(fun,x, a, b) 计算函数fun关于变量x从a到b的定积分 我们通过例子来学习具体的用法:,13,例1:计算不定积分 。 解:可以用下面的程序完成: clear y=sym(x5+x3-sqrt(x)/4) int(y) pretty(ans),14,例2:计算定积分 。 解:可以用下面的程序实现计算: clear syms x y=(x*exp(x)/(1+x)2; int(y,0,1),15,例3:计算二重积分 ,其中D为曲线 和 所围成的区域。 解:区域D可用不等式表示为: 所以,计算该积分的MATLAB程序为: clear syms x y f=x*x+y; int(int(f,y,x*x,sqrt(x),x,0,1),16,例4:被积曲面S为球面 在第一卦限部分的外则,计算曲面积分 。 解:先把问题转化为二重积分,积分区域为x,y平面内的第一象限部分。具体的计算公式为: 然后计算该二次积分,程序如下:,17,clear syms x y z z=sqrt(1-x2-y2) f=x*y*z I=int(int(f,y,0,sqrt(1-x2),x,0,1) 这里我们看到,所有的积分计算都是利用函数int完成的,当我们遇到二重积分、三重积分和曲线、曲面积分时需要先化为相应的累次积分,再用int来完成积分的计算。,18,三、实验内容,1求下列函数的积分: 1) 2) 3) 2求二重积分: , 3求三重积分: ,由曲面 , , 所围成。,19,4求曲面积分: ,其中 为锥面 在平面 和平面 之间的曲面的外则。,20,方程和方程组的求解,21,一、相关知识,在MATLAB中,由函数solve()、null()、fsolve(),fzero等来解决线性方程(组)和非线性方程(组)的求解问题,其具体格式如下: X=solve(eqn1,eqn2,eqnN,var1,var2,varN) X=fsolve(fun,x0,options) 函数solve用来解符号方程、方程组,以及超越方程,如三角函数方程等非线性方程。参数eqnN为方程组中的第N个方程,varN则是第N个变量。,22,二、相关知识,函数null(A)则用来解线性方程组AX=O的基础解系,实际是求系数矩阵A的零空间,在null函数中可加入参数r,表示有理基。通过求系数矩阵的秩和增广矩阵的秩,可以判定方程组是否有解,以及是否需要求基础解系。 X=fsolve(fun,x0,options) 函数solve用来解符号方程、方程组,以及超越方程,如三角函数方程等非线性方程。参数eqnN为方程组中的第N个方程,varN则是第N个变量。,23,例1:求解方程 的MATLAB程序为:X=solve(x2-x-6=0,x) 结果为:X=3, -2 例2:求解方程组 的程序为: X,Y=solve(x2+y-6=0,y2+x-6=0,x,y) 结果为:X =2, -3, 1/2-1/2*21(1/2), 1/2+1/2*21(1/2) Y =2, -3, 1/2+1/2*21(1/2), 1/2-1/2*21(1/2),24,例3:求解方程组 的程序为: clear format rat A=5, 0, 4, 2;1, -1, 2, 1;4, 1, 2,0;1,1,1,1; B=3;1;1;0; X=AB 结果请大家自己运行。,25,例4:求方程组 的通解的程序为: clear format rat A=1,2,2,1;2,1,-2,-2;1,-1,-4,-3 C=null(A,r) 求出矩阵A的解空间的有理基。 结果如下:,26,C = 2 5/3 -2 -4/3 1 0 0 1 接着,用命令: syms k1 k2 X=k1*C(:,1)+k2*C(:,2),27,求出的通解为: X = 2*k1+5/3*k2 -2*k1-4/3*k2 k1 k2,28,例5:求方程组 的通解的程序为: clear format rat A=sym(1,2,2,1;2,1,-2,-2;1,-1,-4,-3) b=sym(1;2;2) B=A,b n=length(A(1,:) RA=rank(eval(A) RB=rank(eval(B),29,if(RA=RB&RA=n) X=eval(AB) 在方程组满秩时,求出唯一解 elseif(RA=RB&RAn) C=eval(Ab) 在方程组不满秩时,求出特解 D=null(eval(A),r) 求出矩阵A的零空间的 基,即方程组的基础解系 syms k1 k2 X=k1*D(:,1)+k2*D(:,2)+C 求出方程组的全部解,30,else fprintf(No Solution for the Equations) end 结果请大家自己运行。 现在我们转而来看非线性方程组的求解,对于非线性方程组,我们用函数fsolve来求解。,31,例6:求解非线性方程组 时,我们采用如下的方法,先建立存放函数的m文件,文件名必须与函数名一致,这里就应该为sy6_6.m,内容如下: function y=sy6_6(x) y(1)=x(1)-0.5*sin(x(1)-0.3*cos(x(2) y(2)=x(2)-0.5*cos(x(1)+0.3*sin(x(2) 接着,我们建立另一个m文件sy6_6_1.m,其内容为:,32,clear format short x0=0.1,0.1 fsolve(sy6_6,x0,optimset(fsolve)这里的optimset(fsolve)部分是优化设置,可以不用 function y=sy6_6(x) y(1)=x(1)-0.5*sin(x(1)-0.3*cos(x(2) y(2)=x(2)-0.5*cos(x(1)+0.3*sin(x(2) 接着,我们建立另一个m文件sy6_6_1.m,其内容为:,33,clear format short x0=0.1,0.1 fsolve(sy6_6,x0,optimset(fsolve)这里的optimset(fsolve)部分是优化设置,可以不用 结果是:0.5414,0.3310。,34,三、实验内容,1利用MATLAB求线性方程组 的全部解。 2利用MATLAB求方程 的解。 3利用MATLAB求方程 在区间 中的全部解。,35,4利用MATLAB求方程组 的解。 5利用函数fzero求解方程 在区间 上的根。,36,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!