文档介绍:牛顿迭代法实验
第1页,本讲稿共16页
设 x*是方程 f(x)=0 的根, x0是x* x0 附近,对函数做局部线性化
x0
x1
x*
(n = 0, 1, 2, ·····linspace(-2,2,n);
[x,y]=meshgrid(t);
X=roots([1,0,0,-1]);
[A0,A1,A2,A3]=Nlab(x,y,X);
A=A0+2*A1+3*A2+4*A3;
figure(1),pcolor(x,y,A),shading interp
figure(2),pcolor(x,y,A0), shading interp
实验绘图主程序
第10页,本讲稿共16页
function [A0,A1,A2,A3]=Nlab(x,y,X);
r1=X(1);r2=X(2);r3=X(3);Z=x+y*i;[M,N]=size(Z);
A0=zeros(M,N);A1=A0;A2=A0;A3=A0;
for k1=1:M
for k2=1:N
z=Z(k1,k2);p=newton0(z); %取初值调用牛顿迭代
if abs(p-r1)<, A1(k1,k2)=1;
elseif abs(p-r2)<, A2(k1,k2)=1;
elseif abs(p-r3)<, A3(k1,k2)=1;
else
A0(k1,k2)=1; %确定不收敛的初始点
end
end
end
调用牛顿迭代程序创建矩阵(照片)
第11页,本讲稿共16页
[m,n]=size(A0);
N=m*n;
II=find(A0==1);N0=length(II);
II=find(A1==1);N1=length(II);
II=find(A2==1);N2=length(II);
II=find(A3==1);N3=length(II);
format bank
results=100*[N0,N1,N2,N3]/N
利用矩阵统计各区域百分比程序
第12页,本讲稿共16页
function prop=Newtonlab2(n)
if nargin==0,n=100;end
P=rand(n,2);
x=4*P(:,1)-2;y=4*P(:,2)-2;
Z=x+i*y; A0=[];A1=[];A2=[];A3=[];
X=roots([1,0,0,-1]);r1=X(1);r2=X(2);r3=X(3);
for k=1:n
z=Z(k); p=newton0(z);
if abs(p-r1)<,A1=[A1,1];
elseif abs(p-r2)<,A2=[A2,1];
elseif abs(p-r3)<,A3=[A3,1];
else __________________________________;
end
end
N0=sum(A0);N1=sum(A1);N2=sum(A2);N3=sum(A3)
format bank
prop=______________________________________ ;
第13页,本讲稿共16页
实验结果
表1. 规则点不收敛域与收敛域百分比
分辨率 不收敛域 收敛域III 收敛域II 收敛域I
51*51
101*101
201*201
表2. 随机点不收敛域与收敛域百分比
随机点数 不收敛域 收敛域III 收敛域II 收敛域I
100
1000