?? dampednewton.m
字號:
function [] = dampedNewton(f,Df,x0,maxite);format compactxMax=1.5*abs(x0);xMin=-xMax;dt= (xMax-xMin)/100;yMax=abs(feval(f,xMax));t = xMin:dt:xMax;plot(t,feval(f,t),'k-');axis([xMin xMax -yMax yMax]);hold on;plot([xMin xMax],[0 0],'k-');hold on;plot([0 0],[-yMax yMax],'k-');x(1)=x0; k=0; disp(sprintf('x_%d=%f',k/2,x(k+1)))y(1)=0;for k=2:2:2*maxite x(k)=x(k-1); y(k)=feval(f,x(k)); dx=-feval(f,x(k))/feval(Df,x(k)); lambda=2; lambdaMin=1.e-10; ddx=2*dx; while abs(ddx)>(1-lambda/2.)*abs(dx) lambda=lambda/2; if lambda<lambdaMin lambda=-1; disp('lambda zu klein'); break; end; z=x(k-1)+lambda*dx; ddx=-feval(f,z)/feval(Df,x(k)); end; if lambda<0 break; else waitforbuttonpress; x(k+1)=x(k)+lambda*dx; disp(sprintf('x_%d= %f lambda=%f',k/2,x(k+1),lambda)); y(k+1)=0; plot(x,y,'r*-'); end;end;if lambda<0 displ('Daempfungsparameter zu klein'); end;hold off;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -