网站做的比较好的公司,浙江省建设网证书查询,asp网站查看器,清远网站建设公司1.简述 若向量记号为X,方程组就可以写成F(X)0的形式。
我们知道#xff0c;对于一元函数的牛顿迭代法求根公式 类似的#xff0c;对于多元函数求根公式 其中X是向量#xff0c;是非线性方程组对应的雅可比矩阵。
具体求解的时候#xff0c;我们可以先通过绘图命令绘制图形…1.简述 若向量记号为X,方程组就可以写成F(X)0的形式。
我们知道对于一元函数的牛顿迭代法求根公式 类似的对于多元函数求根公式 其中X是向量是非线性方程组对应的雅可比矩阵。
具体求解的时候我们可以先通过绘图命令绘制图形看交点。然后将交点附近的值带入迭代
矩阵。最后求出小于误差的收链解。 2.代码 主程序
function newton%牛顿迭代法解非线性方程组 syms a x; beta0.15; F[1-betasqrt((1-beta)^24*a)-2*x; betaa2*x-(betax)^3]; eps10e-6;%精度 num1;%记步数 tol1;%给定误差初始值 x0[1;1];%参数赋初始值 v[a,x]; while toleps Fxsubs(F,v,transpose(x0)); dFjacobian(F,v); csubs(dF,v,transpose(x0)); xx0-inv(c)*Fx; tolnorm(x-x0); x0x; numnum1; if (num10^8) disp(迭代次数大于最大值可能不收敛) return end end %Output fprintf(解出 a %g.\n,x0(1)) fprintf(解出 x %g.\n,x0(2)) fprintf(迭代次数 n %g次.\n,num) 子程序
function [y,n]newton_fun(F,x0) if nargin2 eps1.0e-6; end num 0; tol 1; vfindsym(F); while toleps Fx subs(F,v,transpose(x0)); dFjacobian(F,v); csubs(dF,v,transpose(x0)); xx0-inv(c)*Fx; tolnorm(x-x0); x0x; numnum1; if (num10^8) disp(迭代次数大于最大值可能不收敛) return end end y x0; n num; end 子程序
function solve syms x gamma0.5; m5; theta12; a1-gamma; Fsin((m1)*x)-a*sin(m*x); for i0:m1 w0i*pi/(m1); [x,n]newton_fun(F,w0); w(i1)x; % beta(i1)theta*gama^2/(sqrt(1a^2-2*a*cos(x))-gama*(1-theta)); b(i1)cos((m1)*x)-a*cos(m*x);%先算出b beta(i1)theta*gamma^2/(b(i1)-gamma*(1-theta));%再算出beta num(i1)n; end w beta num