矩阵数组和符号运算.ppt

上传人:小飞机 文档编号:6319485 上传时间:2023-10-16 格式:PPT 页数:19 大小:344.50KB
返回 下载 相关 举报
矩阵数组和符号运算.ppt_第1页
第1页 / 共19页
矩阵数组和符号运算.ppt_第2页
第2页 / 共19页
矩阵数组和符号运算.ppt_第3页
第3页 / 共19页
矩阵数组和符号运算.ppt_第4页
第4页 / 共19页
矩阵数组和符号运算.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《矩阵数组和符号运算.ppt》由会员分享,可在线阅读,更多相关《矩阵数组和符号运算.ppt(19页珍藏版)》请在三一办公上搜索。

1、第3章 矩阵、数组和符号运算,7、符号方程求解线性方程组的符号解法 函数命令 linsolve 用来求解线性方程组符号解。对方程 A*X=B,linsolve 的调用格式为:X=linsolve(A,B)等同于 X=sym(A)sym(B)A=sym(10,-1,0;-1,10,-2;0,-2,10)A=10,-1,0-1,10,-2 0,-2,10 B=(9;7;6)B=9;7;6,linsolve(A,B)ans=473/475 91/95 376/475 vpa(ans,6)ans=.995789.957895.791579矩阵 A 必须至少是行满秩的。当 A 的列数大于行数时,将给出解

2、不惟一的警告提示。,b.非线性方程的符号解法用函数零点法求非线性方程的解有两个函数命令,即 fzero 和 fsolve。fzero命令用于求一元函数零点 fsolve命令用于求解非线性方程组首先需将方程 f(x)=g(x)转化为 F(x)=f(x)-g(x)=0,方程组也是如此;然后再将函数 F(x)写成 MATLAB 的 m 函数,以便在 fzero 和 fsolve 命令中调用。求解的过程为:先猜测一个初始零点,或者该零点大概所在的区间;然后通过计算,使猜测值不断精确化,或使猜测区间不断收缩,直到达到预先指定的精度为止。,第3章 矩阵、数组和符号运算,第3章 矩阵、数组和符号运算,求一元

3、函数零点命令fzero 的调用格式为:x=fzero(fun,x0):求一元函数零点命令的最简形式;x,fval,exitflag=fzero(fun,x0,options,P1,P2,.):求一元函数零点命令的完整格式。x0 是初始猜测的零点;options 是优化迭代所采用的参数选项,options的缺省设置可以用命令 options=optimset(fzero)获得;P1,P2是向函数 fun 传递的附加参数。它的具体取名和函数 fun 中一致;x是输出参数,为所求的零点自变量值;fval是输出参数,为函数 fun 在 x 处的值;exitflag是描述函数 fun 的退出情况。若 e

4、xitflag0,则表示找到函数零点后退出;若 exitflag0,则表示没有找到零点或在搜索过程中遇到了无穷大的函数值。,第3章 矩阵、数组和符号运算,用 fzero 命令求解函数 的零点(1)建立函数 f(x)的 M 文件。function y=fun1(x)y=x.4-4*x-5;(2)建立水平横轴的 M 文件。function y=fun2(x)y=0;(3)用作图法估计函数零点位置。fplot(fun1,-5,5,r)hold on fplot(fun2,-5,5,r)(4)用 zoom 和 ginput 命令获得零点的初始近似值 在程序中输入下列命令,可得到函数的局部放大图及鼠标操

5、作线。zoom on%局部放大命令 tt=ginput(1)yy=ginput(1)%用鼠标获取 2 个零点猜测值 zoom off%恢复原来图形大小,显示所得零点初始猜测值,结果为:tt=-0.9838 0.0001 yy=1.8762 0.0091(5)用函数 fzero 命令求函数的精确零点 x,fval,exitflag=fzero(fun1,tt(1),)%靠近 tt(1)点处的精确零点 x,fval,exitflag=fzero(fun1,yy(1),)%靠近 yy(1)点处的精确零点 结果为:Zero found near tt.x=-1 fval=0 exitflag=1,第3

6、章 矩阵、数组和符号运算,Zero found near yy.x=1.8812 fval=-6.2172e-015 exitflag=1,解非线性方程组的函数命令fsolve 其调用格式为:x=fsolve(fun,x0):解非线性方程组最简单的调用格式。该式中除两个输入参数外,其余输入输出参数都可以缺省;x,fval,exitflag,output,jacob=fsolve(fun,x0,options,P1,P2.):解非线性方程组最完整的调用格式。x0 是表示零点数是猜测值的向量;options 是 优 化 迭 代 所 采 用 参 数 的 结 构 数 组。P1 和 P2是向函数 fun

7、 传递的参数;x 和 fval是输出参数,所求零点的自变量值和函数值;output是输出此命令所用的计算方法、迭代次数等信息。jacob是函数在 x 处的 jacobian。,第3章 矩阵、数组和符号运算,第3章 矩阵、数组和符号运算,求方程组 的根。首先编制函数文件fc.mfunction y=fc(x)y(1)=x(1)-0.7*sin(x(1)-0.2*sin(x(2);y(2)=x(2)-0.7*cos(x(1)+0.2*sin(x(2);y=y(1),y(2);然后用fsolve求解x,fval,exitflag,output,jacob=fsolve(fc,1.,1.,)%1.,1

8、.为初值x=0.3367 0.5553fval=1.0e-008*0.2029 0.5242exitflag=1,output=firstorderopt:5.7877e-009 iterations:5 funcCount:16 cgiterations:4 algorithm:1x43 charjacob=(1,1)0.3393(2,1)0.2313(1,2)-0.1700(2,2)1.1700,求方程组 的解。初始零点猜测值为:x0,y0=0.0,-0.0058 用fsolve 函数命令求精确解 fun=sin(x(1)+x(2),x(1)+6*x(2);%用字符串表达式形式命令。注意自

9、变量必须写成x(1)和 x(2)fun 函数也可用 M 函数文件的形式 function yy=fun(x)yy(1)=sin(x(1)+x(2);yy(2)=x(1)+6*x(2);XX,YY=fsolve(fun,x0(1),y0(1)%解此非线性方程组 XX=1.0e-016*-0.5464 0.1214 YY=1.0e-016*-0.4250 0.1821,第3章 矩阵、数组和符号运算,第3章 矩阵、数组和符号运算,c.一般代数方程(组)的符号解slove 命令可以解一般代数方程,包括线性方程、非线性方程和超越方程。当方程不存在符号解,且又无其他自由参数时,函数 solve 将给出数值

10、解。命令调用格式为:solve(eqn1,eqn2,.,eqnN):对 N 个方程的默认变量求解;solve(eqn1,eqn2,.,eqnN,var1,var2,.,varN):对 N 个方程的 var1,var2,.,varN 变量求解。要注意变量的英文字母顺序,且在变量前不可有空格;S=solve(eqn1,eqn2,.,eqnN,var1,var2,.,varN):对 N 个方程的var2,.,varN 变量求解;S 是一个结构数组;x1,x2,xn=solve(eqn1,eqn2,.,eqnN,var1,var2,.,varN):对变量 var1,var2,.,varN 求解,求解的

11、结果分别赋给 x1,x2,xn(按照变量var1,var2,.varN 在英文字母中的顺序给 x1,x2,xn赋值)。,第3章 矩阵、数组和符号运算,求非线性方程组 的解。解:x,y,z=solve(x2+sqrt(2)*x+2=0,x+3*z=4,y*z=-1,x,y,z)x=(-1/2+1/2*i*3(1/2)*2(1/2)(-1/2-1/2*i*3(1/2)*2(1/2)y=-51/73+3/73*i*3(1/2)-27/146*(-1/2+1/2*i*3(1/2)*2(1/2)-3/146*2(1/2)-51/73-3/73*i*3(1/2)-27/146*(-1/2-1/2*i*3(

12、1/2)*2(1/2)-3/146*2(1/2)z=-1/3*(-1/2+1/2*i*3(1/2)*2(1/2)+4/3-1/3*(-1/2-1/2*i*3(1/2)*2(1/2)+4/3,d.常微分方程的符号解函数 dsolve 用来求常微分方程的符号解。在符号方程中,用符号表达式中包含的字母“D”来代替微分运算,符号 D2、D3、DN 分别对应于第二、第三、第 N 阶导数。因变量是位于 D后面的变量,缺省的自变量为 t。dsolve 的调用格式为:S=dsolve(eqn1,eqn2,.)输入参数包含三部分内容:微分方程、初始条件和指定独立变量。输出S 是结构数组。初始条件或边界条件写成y

13、(a)=b或Dy(a)=b等。a、b 可以是变量使用符以外的其他字符。当初始条件少于微分方程数时,在所得解中将出现任意常数符 C1,C2,.,解中任意常数符的数目等于所缺少的初始条件数。当无输出参数时,MATLAB 工作内存中在 y1,y2,定义的输出参数中保存计算结果。,第3章 矩阵、数组和符号运算,dsolve(Dx=-a*x)ans=C1*exp(-a*t)dsolve(Dx=-a*x,x(0)=2)ans=2*exp(-a*t)dsolve(Df-f-sin(t)=0,f(pi/2)=0)ans=-1/2*cos(t)-1/2*sin(t)+1/2*exp(t)/(cosh(1/2*p

14、i)+sinh(1/2*pi)y=dsolve(Dy)2+y2=1,y(0)=0)y=sin(t)-sin(t),第3章 矩阵、数组和符号运算,求,f(0)=1,g(0)=2 的解。S=dsolve(Df=f+g,Dg=-f+g,f(0)=1,g(0)=2)S=f:1x1 sym g:1x1 sym S.f ans=exp(t)*(cos(t)+2*sin(t)S.g ans=exp(t)*(-sin(t)+2*cos(t)函数 dsolve 命令求解微分方程时,如果得不到其解,则给出警告信息。,第3章 矩阵、数组和符号运算,8、符号函数的二维图二维符号函数的专用命令ezplot格式为:ezp

15、lot(sym-fun,limits)参数含义如下:sym-fun:符号函数或代表它的符号变量;limits:为自变量 x 的取值范围,即 limits=x1,x2,其默认值为-2pi,2pi。用ezplot 绘函数图syms x f=(x2)(cos(x)2);ezplot(f),第3章 矩阵、数组和符号运算,第3章 矩阵、数组和符号运算,9、图示化函数计算器a.单变量函数分析界面 用于考察两个一元函数各自性质及其相互关系。该函数计算器由funtool.m 文件生成。在 MATLAB 命令窗口中键入下面命令即可:funtool,第3章 矩阵、数组和符号运算,单函数运算、函数和常数a的运算、两

16、个函数之间的运算和辅助操作,辅助操作,b.泰勒级数逼近分析界面 观察函数 f(x)在给定区间位置上的 N 阶泰勒多项式 逼近的情况。在MATLAB 工作窗口中输入命令:taylortool或taylortool(fx)fx为字符串,第3章 矩阵、数组和符号运算,第3章 矩阵、数组和符号运算,10、符号计算的Maple 接口MAPLE 具有强大的符号计算功能和丰富的应用数学函数。为了能够在 MATLAB 的工作环境中利用 MAPLE 的符号计算能力,MATLAB 提供有专门的指令用于 MATLAB 和 MAPLE的连接。mfun:对 MAPLE 中的若干重要的特殊函数实施数值计算。使用格式为:m

17、fun(function,par1,par2,par3,par4)该函数以数值方式计算 MAPLE 中特殊函数function的值,函数的参数由 par1、par2、par3、par4 指定,最多可以指定四个参数。mfunlist:采用 MATLAB 注释语句列出能被 mfun 计算的一些重要 MAPLE 函数列表;mhelp:查阅 MAPLE 库函数的联机帮助文件,以获取 MAPLE 库函数及其调用方法;maple:进入 MAPLE 的工作空间,直接对访问 MAPLE 的任意函数进行计算,并将结果返回至 MATLAB 工作空间。x=0:0.1:5.0;y=mfun(FresnelC,x);,(11)求解下列微分方程 a.y=(x+y)(x-y)b.xy=ytg(y/x),y(10)=1 c.y=-xsinx/cosy,y(2)=1(12)求微分方程组 的解。(13)求微分方程组,当初始条件为 f(0)=2,g(2)=5 时的解。(14)练习使用单变量函数分析界面。,上机习题(3),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号