- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验8非线性方程和常微分方程.doc
实验8 非线性方程和常微分方程的解法
一、实验目的
学会用MATLAB软件求解非线性方程和常微分方程。
二、实验内容与要求
1. 非线性方程的整值解
(1)最小二乘法
格式:fsolve(’fun’,)%求方程fun=0在估计值x附近的近似解。
[例1.72] 求方程的解。
fc=inline(‘x-exp(-x)’);
xl=fsolve(fc,0)
xl=
0.5671
问题1.28:求解方程,观察知有多解,如何求之?
先用命令fplot(’5*x^2*sin(x)-exp(-x),0]’,[0,10])作图1.13,注意5*x^2*sin(x)-exp(-x),0]中的“[…,0]”是作y=0直线,即x轴。方程在[0,10]区间从图中可看出有4个解,分别在0,3,6,9附近,所以用命令:
fun=inline(’5*x^2*sin(x)-exp(-x)’);
fsolve(fun,[0,3,6,9],le-6)
得出结果:
ans=
0.5918 3.1407 6.2832 9.4248
【例 1.73】求解方程组x-0.7sinx-0.2cosy=0
先编制函数文件 fu.m:
function y=fu (x)
y (1)=x (1) - 0.7*sin ( x (1) ) - 0.2*cos( x (2) ) ;
y (2)=x (1) - 0.7*cos (x (1) ) + 0.2*sin (x (2) );
y =[ y(1), y(2) ];
在命令窗口调用fu运算:
x1 =fsolve( ‘fu’, [0.5,0.5 ])
x1 =
0.5265 0.5079
(2) 零点法
格式: %求函数在附近的零点。
说明:估计值若为标量时,则在附近查找零点,=[]向量时,则首先要求函数值 ,然后将严格在[]区间内零点,若找不到,系统将给出提示。
【例 1.74】 求函数 的零点。
fn =inline(sin (x^2) / x+x* exp (x) - 4 );
x=fzero ( fn, [1,2] ) %这里的fn不要加单引号
x =
1.0748
注意:方程解的估计值 可用fplot作图看出;用function建立函数文件fn,求解调用时fn两边要加单引号,而用inline时fn两边不要加单引号;这两种方法也可解线性方程组。
⒉ 代数方程的符号解
格式: %求解方程,输入参量可是符号表达式或字符表达式。
%对中指定的变量求解方程。
%求解方程组。
%对方程组中指定的n个变量加求解
【例1.75】
solve ( a*x^2 + b*x + c)
solve( a*x^2 + b*x + c, b)
[x,y] =solve ( x+y = 1, x -11*y= 5)
[a,u,v] =solve (a*u^2 + v^2, u- v =1,a^2 -5*a +6)
计算结果为:
ans =
[ 1/2/a*(-b +(b^2-4*a*c)^(1/2) ) ]
[ 1/2/a*(-b -(b^2 -4*a*c)^(1/2) )]
ans =
-(a*x^2+c) /x
x =
4/3
y =
-1/3
a =
[2]
[2]
[3]
[3]
u =
[ 1/3+1/3*i*2^(1/2) ]
[ 1/3-1/3*i*2^(1/2) ]
[ 1/4+1/4*i*3^(1/2) ]
[ 1/4-1/4*i*3^(1/2) ]
v =
[ -2/3+1/3*i*2^(1/2)]
[ -2/3-1/3*i*2^(1/2)]
[ -3/4+1/4*i*3^(1/2)]
[ -3/4-1/4*i*3^(1/2)]
注意:对于单个的方程或方程组,若不存在符号解,则返回方程(组)的数值解。
问题1.29:用符号法求解问题1.28中的方程,结果不对,所以要验根,多用几种方法相互验证,用符号法解方程,解的表达式不易懂,怎么办?
x =solve(3*x^2-exp(x))
x =
[ -2*lambertw (-1/6*3^(1/2) ) ]
[ -2*lambertw (-1,-1/6*3^(1/2) ) ]
[ -2*lambertw (1/6*3^(1/2) ) ]
再用命令:
vpa (x,3)
ans =
[ .912]
[ 3.72]
[ -.460]
3.常微分方程数值解法
格式: %区间上,用初始条件求解显示微分方程
说明:solver为命令ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb,之一。
od
文档评论(0)