⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newton.m

📁 给定一个三次方程,用Newton法求解,并研究各种算法的收敛阶数.
💻 M
字号:
%当f(x)= 10*x.^3+80*x.^2+6*x+a0时[newton1.m]function sa = newton1(x0,epsilon,max)% NEWTON calculate the newton method approximation% x0 is the initial value % epsilon is the tolerance for x0 % max is the maximum number of iterationssyms x;syms pstar;syms q;syms a0;q=1000;pstar=rand(1,1000); % p*step=zeros(1,1000); %迭代步数order=zeros(3,1000); %收敛阶数g=inline('-10*x.^3-80*x.^2-6*x');df=inline('30*x^2+160*x+6');U=zeros(1,max);U(1)=x0;for i=1:1000    a0=feval(g,pstar(i));        f=inline('10*x.^3+80*x.^2+6*x+a0 ');    for j=1:max        x1=x0-feval(f,a0,x0)/feval(df,x0);        U(j+1)=x1;        err=abs(x1-x0);        x0=x1;       if err<epsilon           break;       end    end    for k=1:j        Us(k)=log(abs(U(k)-pstar(i)));    end    X=Us(1:j-1);    Y=Us(2:j);     if  j==max    %不收敛        step(i)=0;        order(:,i)=0;        q=q-1;     else if j==2 %收敛            X=Us(1:j);            Y=Us(2:j+1);                else          %收敛        step(i)=j;         xmean=mean(X);        ymean=mean(Y);        Gs=X-xmean;        G=zeros(1,j-1);        for h=1:3             for d=1:j-1                 G(d)=Gs(d)*(d^(h-1));             end            sumx2=G*(X-xmean)';            sumxy=(Y-ymean)*G';            order(h,i)=sumxy/sumx2;         end        end    end    end qv=zeros(1,3);v=sum((order)'); averagesteps=sum(step)/qaverageorder1=v(1)/qaverageorder2=v(2)/qaverageorder3=v(3)/q         

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -