Matlab工程应用基础_3_3分解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 矩阵、数组和符号运算;b. 非线性方程的符号解法 用函数零点法求非线性方程的解有两个函数命令,即 fzero 和 fsolve。 fzero命令用于求一元函数零点 fsolve命令用于求解非线性方程组 首先需将方程 f(x)=g(x)转化为 F(x)=f(x)-g(x)=0,方程组也是如此 ;然后再将函数 F(x)写成 MATLAB 的 m 函数,以便在 fzero 和 fsolve 命令中调用。 求解的过程为: 先猜测一个初始零点,或者该零点大概所在的区间; 然后通过计算,使猜测值不断精确化,或使猜测区间不断收缩 ,直到达到预先指定的精度为止。;第3章 矩阵、数组和符号运算;第3章 矩阵、数组和符号运算;显示所得零点初始猜测值,结果为: 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 ;解非线性方程组的函数命令fsolve 其调用格式为: ◆ x=fsolve(fun,x0) :解非线性方程组最简单的调用格式。该式中除两个输入参数外,其余输入输出参数都可以缺省; ◆[x,fval,exitflag,output,jacob]=fsolve(fun,x0,options,P1,P2...):解非线性方程组最完整的调用格式。 x0 是表示零点数是猜测值的向量; options 是 优 化 迭 代 所 采 用 参 数 的 结 构 数 组 。 P1 和 P2是向函数 fun 传递的参数; x 和 fval是输出参数,所求零点的自变量值和函数值; output是输出此命令所用的计算方法、迭代次数等信息。 jacob是函数在 x 处的 jacobian。;第3章 矩阵、数组和符号运算;求方程组 的解。 初始零点猜测值为:[x0,y0]=[0.0, -0.0058] 用fsolve 函数命令求精确解 fun=’[sin(x(1))+x(2),x(1)+6*x(2)]’; %用字符串表达式形式命令。 注意自变量必须写成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章 矩阵、数组和符号运算;d. 常微分方程的符号解 函数 dsolve 用来求常微分方程的符号解。 在符号方程中,用符号表达式中包含的字母“ D”来代替微分运算,符号 D2、D3、…DN 分别对应于第二、第三、…第 N 阶导数。因变量是位于 D后面的变量,缺省的自变量为 t。 dsolve 的调用格式为: S=dsolve(’eqn1’,’eqn2’, ...) 输入参数包含三部分内容:微分方程、初始条件和指定独立变量。输出S 是结构数组。 初始条件或边界条件写成‘y(a)=b’或‘Dy(a)=b’等。a、b 可以是变量使用符以外的其他字符。 当初始条件少于微分方程数时,在所得解中将出现任意常数符 C1,C2,….,解中任意常数符的数目等于所缺少的初始条件数。 当无输出参数时,MATLAB 工作内存中在 y1,y2,…定义的输出参数中保存计算结果。; dsolve(Dx=-a*x) ans = C1*exp(-a*t) dsolve(Dx=-a*x,x(0)=2) ans = 2*exp(-a*t) dsolve(Df - f -si

文档评论(0)

花仙子 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档