Re: [問題]想問求極值的問題已回收

看板MATLAB作者 (楓霧)時間17年前 (2009/02/08 12:36), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
這裡提供一種方法 先使用Lagrange function 再使用Newton-Raphson Method 以下為程式碼 %-------------------------------------------------------------- iter=0; Df=10; Lambda=input('Enter estimated value of Lambda = '); fprintf('\n'); disp([' Iter Df J'... ' DLambda Lambda x y']); while abs(Df)>=1e-4 iter=iter+1; x=-1/(2*Lambda); y=-1/(2*Lambda); Df=x^2+y^2-1; J=-1/(Lambda)^3; DeLambda=-Df/J; disp([iter, Df, J, DeLambda, Lambda, x, y]); Lambda=Lambda+DeLambda; end %-------------------------------------------------------------- 執行結果 Enter estimated value of Lambda = 0.4 Iter Df J DLambda Lambda x y 1.0000 2.1250 -15.6250 0.1360 0.4000 -1.2500 -1.2500 2.0000 0.7404 -6.4939 0.1140 0.5360 -0.9328 -0.9328 3.0000 0.1834 -3.6412 0.0504 0.6500 -0.7692 -0.7692 4.0000 0.0193 -2.9107 0.0066 0.7004 -0.7139 -0.7139 5.0000 0.0003 -2.8296 0.0001 0.7070 -0.7072 -0.7072 6.0000 0.0000 -2.8284 0.0000 0.7071 -0.7071 -0.7071 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.207.32
文章代碼(AID): #19Zc58hw (MATLAB)
文章代碼(AID): #19Zc58hw (MATLAB)