function newton%牛顿迭代法解非线性方程组
syms a x;
beta=0.15;
F=[1-beta+sqrt((1-beta)^2+4*a)-2*x;
beta+a+2*x-(beta+x)^3];
eps=10e-6;%精度
num=1;%记步数
tol=1;%给定误差初始值
x0=[1;1];%参数赋初始值
v=[a,x];
while tol>eps
Fx=subs(F,v,transpose(x0));
dF=jacobian(F,v);
c=subs(dF,v,transpose(x0));
x=x0-inv(c)*Fx;
tol=norm(x-x0);
x0=x;
num=num+1;
if (num>10^8)
disp('迭代次数大于最大值,可能不收敛')
return
end
end
%Output
fprintf('解出 a = %g.\n',x0(1))
fprintf('解出 x = %g.\n',x0(2))
fprintf('迭代次数 n = %g次.\n',num)