Re: [問題]想問求極值的問題已回收
這裡提供一種方法
先使用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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章