牛顿迭代法收敛及算法实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB 主程序

function [y,f]=newjushou(x)

f=fnq(x); fz=fnq(x)*ddfnq(x)/((dfnq(x))^2+eps);

y=abs(fz);

if (y<1)

disp('恭喜您!此迭代序列收敛,φ(x)导数值的绝对值y=|dφ(x)/dx|和

方程f(x)=0的函数f(x)值f 如下')

else

disp('请注意观察下面显示的φ(x)的导数值的绝对值y=|dφ(x)/dx|和方程f(x)=0的函数f(x)值')

end

P=[y,f]';

例 2.6.2 用牛顿切线法的局部收敛性判别方程 e 4sin

=x x 的近似根时,由下列初

始值0x 产生的迭代序列是否收敛?

⑴-1;0=x ⑵0;0=x ⑶1;0=x ⑷2;0=x ⑸ 5.50=x ;⑹80=x .

解 在MATLAB 工作窗口输入程序

>> [y,f]=newjushou(-1)

运行后输出结果

请注意观察下面显示的φ(x)的导数值的绝对值y=|d φ(x)/dx|和方程f(x)=0的函数f(x)值

y =

139.5644

f =

4.3096 (2)输入程序

>> [y,f]=newjushou(0)

运行后输出结果

请注意观察下面显示的φ(x)的导数值的绝对值y=|d φ(x)/dx|和方程f(x)=0的函数f(x)的值f

y =

8.0000

f =

4

(3)输入程序

>> [y,f]=newjushou(1)

运行后输出结果

恭喜您!此迭代序列收敛,φ(x)导数值的绝对值y=|d φ(x)/dx|和方程f(x)=0的函数f(x)值f 如下

y =

0.3566

f =

1.7126

(4)输入程序:

>> [y,f]=newjushou(2)

运行后输出结果

请注意观察下面显示的φ(x)的导数值的绝对值y=|d φ(x)/dx|和方程f(x)=0的函数f(x)值

y =

1.2593

f =

-2.7188

(5)输入程序

>> [y,f]=newjushou(5.5)

运行后输出结果

请注意观察下面显示的φ(x)的导数值的绝对值y=|d φ(x)/dx|和方程f(x)=0的函数f(x)值

y =

1.0447e+005

f =

176.6400

(6)输入程序

>> [y,f]=newjushou(8)

运行后输出结果

恭喜您!此迭代序列收敛,φ(x)导数值的绝对值y=|d φ(x)/dx|和方程f(x)=0的函数f(x)值f 如下

y =

0.4038

f =

-2.9452e+003

2.6.3 牛顿切线法的MATLAB 程序

牛顿切线法的MATLAB 主程序

现提供名为newtonqx.m 的M 文件:

function

[k,xk,yk,piancha,xdpiancha]=newtonqx(x0,tol,ftol,gxmax)

x(1)=x0;

for i=1: gxmax

x(i+1)=x(i)-fnq(x(i))/(dfnq(x(i))+eps);

piancha=abs(x(i+1)-x(i));

xdpiancha= piancha/( abs(x(i+1))+eps); i=i+1;

xk=x(i);yk=fnq(x(i)); [(i-1) xk yk piancha xdpiancha]

if (abs(yk)

k=i-1; xk=x(i);[(i-1) xk yk piancha xdpiancha]

return ;

end

end

if i>gxmax

disp('请注意:迭代次数超过给定的最大值gxmax 。')

k=i-1; xk=x(i);[(i-1) xk yk piancha xdpiancha]

return ;

end

[(i-1),xk,yk,piancha,xdpiancha]';

例 2.6.3 用牛顿切线法求方程01322

3=+-x x 在9.04.00和-=x 的近似根,要求精度310-=ε.

在MATLAB 工作窗口输入程序

>> [k,xk,yk,piancha,xdpiancha]=newtonqx(-0.4,0.001, 0.001,100) 运行后输出初始值4.00-=x 的迭代结果.

2.6.4 求n c 的方法及其MATLAB 程序 求n

c 的方法及其MATLAB 主程序

现提供名为kai2fang .m 的M 文件:

function [k,xk,yk,piancha,xdpiancha,P]=kainfang(x0,c,n,tol, gxmax)

x(1)=x0;

for i=1: gxmax

u(i)= (x(i)^n-c)/(n*x(i)^(n-1)); x(i+1)= x(i)-u(i); piancha=abs(x(i+1)-x(i));

xdpiancha=piancha/( abs(x(i+1))+eps);

i=i+1; xk=x(i);yk=fnq(x(i));

[(i-1),xk,yk,piancha,xdpiancha]

if (piancha

k=i-1;xk=x(i); yk=fnq(x(i));

return ;

相关文档
最新文档