silence123 发表于 2012-12-15 00:08

自己编的可以运行的第一个程序 牛顿法求根

%牛顿法求解方程的根;
%自己编的可以运行的第一个程序;
a=[];
a(1)=0.5;
e=0.000002;
format long  %确定输出格式;
syms x
f=x*exp(x)-1;
ezplot(f)
axis([-6 6 -10 100])
hold on
x=1:10;
y=zeros(1,10);
plot(x,y)
N=30;
z=diff(f);
disp('原函数为f=')
disp(f)
disp( 'f的导数为F=')
disp(z)
for k=2:N
   % f的导数为exp(x)+x*exp(x);
   if exp(a(1))+a(1)*exp(a(1)) ==0
      disp(fprintf('奇异标志\n'));
   else
       a(k)=a(k-1)-(a(k-1)*exp(a(k-1))-1)/(exp(a(k-1))+a(k-1)*exp(a(k-1)));
       if abs(a(k)-a(k-1))<=e;
           disp('该方程的零点为X0=')
           disp(a(k))
           break
       else
           if k==N
               fprintf('没有符合精度的值\n');
           end
       end
   end
end
zoom on                                                %在MATLAB指令窗中运行,获局部放大图
=ginput(5);zoom off        %在MATLAB指令窗中运行,用鼠标获5个零点猜测

w785485068 发表于 2012-12-16 15:45

很好。。。。。。。。。。。。。。。。

silence123 发表于 2012-12-16 17:37

w785485068 发表于 2012-12-16 15:45 static/image/common/back.gif
很好。。。。。。。。。。。。。。。。

:handshake
页: [1]
查看完整版本: 自己编的可以运行的第一个程序 牛顿法求根