qiboke 发表于 2014-8-20 20:57

拟牛顿法


%拟牛顿迭代法 数值分析上机题4.1 第一个方程
clear
clc
x=;%初值
a=ones(100,1);
b=ones(100,1);
c=ones(100,1);
y=;%记载每一步的迭代结果
i=1;
tic
F0=;
dotF0=[12 -2*x(2,1) -4;
        2*x(1,1) 10 -1;
        0 3*(x(2,1))^2 10];
H=inv(dotF0);
x0=x;
yy=[];
F=F0;
while 1
%     F=;
%     dotF=[3 sin(x(2,1)*x(3,1)) sin(x(2,1)*x(3,1));
%         2*x(1,1) -162*x(2,1)-2*8.1 cos(x(3,1));
%         -x(2,1)*exp(-x(1,1)*x(2,1)) -x(1,1)*exp(-x(1,1)*x(2,1)) 20];
%     deltx=-dotF\F;
    x=x-H*F
    deltx=H*F;
    i=i+1;
    F=;
    yy=F-F0;
    F0=F;
    s=x-x0;
    x0=x;
    H=H+(s-H*yy)*(s-H*yy)'/((s-H*yy)'*yy)
    y(i,1)=x(1,1);y(i,2)=x(2,1);y(i,3)=x(3,1);%将中间的迭代结果存放到y中
    i=i+1;
     if ( abs(deltx(1,1)) < 0.5e-5 && abs(deltx(2,1)) < 0.5e-5 && abs(deltx(3,1)) < 0.5e-5)%%如果精确到0.5e-3,停止迭代
         break
     end
% if i==100
%     break
% end
end
toc
i% 迭代次数
x% 解
页: [1]
查看完整版本: 拟牛顿法