- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)