白天没机会碰MATLAB,急的话先试,有问题的话等我晚上试,但注释的2个东西要LZ根据实际情况自己定。
MATLAB解N维牛顿法有优势的,我之前用EXCEL编的,可能会有语法搞起来。
a=?;
b=?;
x=?; %迭代初始向量
Jacob=zeros(n,n);
y=zeros(n,1);
while (stopcriterion) %迭代停止条件自己定
pdx=5*x.^4+3*x.^2+1-b;
for i=1:n
Jacob(i,i)=pdx(i);
end
y(1)=x(1)^5+x(1)^3+x(1)+a-b*(x(1)+x(2));
for i=2:n-1
y(i)=fx(x(i),x(i-1),x(i+1),a,b);
Jacob(i-1,i)=-b;
Jacob(i,i-1)=-b;
end
y(n)=x(n)^5+x(n)^3+x(n)+a-b*(x(n)+x(n-1));
Jacob(n-1,n)=-b;
Jacob(n,n-1)=-b;
dx=y/Jacob;
x=x+dx;
end
%向量x是结果
function fx(x,x0,x1,a,b)
fx=x^5+x^3+x+a-b*(x+x0+x1);
end,