- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
专题六 数值微积分与方程求解
6.4 非线性方程求解与函数极值计算
非线性方程数值求解
函数极值的计算
1.非线性方程数值求解
(1)单变量非线性方程求解
函数的调用格式为:
x=fzero (filename,x0)
其中,filename是待求根方程左端的函数表达式,x0是初始值。
1
例1 求f(x)=x- +5 在x =-5和x =1作为迭代初值时的根。
0 0
x
f=@(x) x-1./x+5;
x1=fzero (f,-5)
x1 =
-5.1926
x2=fzero (f,1)
x2 =
0.1926
x3=fzero (f,0.1)
x3 =
3.7372e-16
取x=0点附近的初值,看看结果如何(x3),显然x3不是方程的解,所以利用
fzero函数求解方程,初值的选取是很重要的。在使用MATLAB进行问题求解时,
需要对问题进行多角度分析,而不能机械地套用命令或程序。
2
f(x)=x -1=0的根。
f=@(x) x.^2-1;
x=[];
x0=-0.25:0.001:0.25;
for x00=x0
x=[x,fzero (f,x00)];
end
plot(x0,x,-o)
xlabel (初值);
ylabel (方程的根);
axis([-0.25,0.25,-1,1])
结果表明,在零附近,相同的根所对应的初值范围并不连续,求得的根也并
非是离初值比较近的根。所以fzero函数执行的是一个数值有哪些信誉好的足球投注网站过程,有哪些信誉好的足球投注网站结
果依赖于函数特性和指定的初值。
(2)非线性方程组的求解
在MATLAB的最优化工具箱中提供了非线性方程组的求解函数fsolve,其调用
格式如下:
x=fsolve(filename,x0,option)
其中,x为返回的近似解,filename是待求根方程左端的函数表达式,x0是初值,
option用于设置优化工具箱的优化参数,可以调用optimset函数来完成。例如,
Display参数设置为 ‘off’时不显示中间结果。
利用fsolve函数解例1的方程。
f=@(x) x-1./x+5;
x1=fsolve (f,-5,optimset(Display,off))
x1 =
-5.1926
x2=fsolve (f,1,optimset(Display,off))
x2 =
0.1926
x3=fsolve (f,0.1,optimset(Display,off))
x3 =
0.1926
当初值是0.1时,利用fzero函数无法得到正确结果,这里利用fsolve函数就能
得到正确结果,因为不同函数的实现方法不同,适用的场合也不同。总之,多
角度选择和分析是很有必要的。
例2 求下列方程组在(1,1,1)附近的解并对结果进行验证。
2 x
sin x + y + z e 0
x + y + z 0
xyz 0
f=@(x) [sin(x(1))+x(2)+x(3)^2*exp(x(1)),x(1)+x(2)+x(3),x(1)*x(2)*x(3)];
f([1,1,1])
ans =
4.5598 3.0000
文档评论(0)