[討論] 利用MATLAB解偏微分聯立方程?已回收
小弟的問題有點煩雜..有錯請小力鞭 @_@
---------------------------------問題敘述開始----------------------------------
目的是要求出最佳參數解..老闆把原本我的目標函數以及限制式弄成一條式子,如下所示
H =
(a1*w*(f^3)*tf)+(a2*delta_P*tf)+lumda*((Cout+(G/f))*(1-(exp(-(f/V)*tf)))
+(Cinitial*(exp(-(f/V)*tf)))-800*10^-6);
其中 w = 0.0000000234175; coin = 5; a1 = 277.7778*coin; a2 = 1;
Cout = 300*10^-6; Cinitial = 1000*10^-6; V = 15*13*3;
people = 25; AP = 0.023/3600; G = AP*people; p = 0.3;
money = 0.0789; delta_P = p*people*money;
然後老闆希望我對這個式子中的 "tf" "F" "lumda" 做偏微分,並且讓它們等於0,如下
dH/dtf = 0 dH/dF = 0 dH/dlumda
最後再將此三項進行解聯立方程,最後可以得到 "tf" "F" "lumda" 各為多少
我先利用以下這段指令去對H做偏微分
syms H tf lumda f w delta_P Cout G V Cinitial a1 a2
H =
(a1*w*(f^3)*tf)+(a2*delta_P*tf)+lumda*((Cout+(G/f))*(1-(exp(-(f/V)*tf)))
+(Cinitial*(exp(-(f/V)*tf)))-800*10^-6);
H_tf = diff(H,tf)
H_lumda = diff(H,lumda)
H_f = diff(H,f)
pretty(H_f)
pretty(H_lumda)
pretty(H_tf)
最後得到三個可解聯立方程的聯立方程組,如下
H_tf = a1*w*f^3+a2*delta_P+lamda*((Cout+G/f)*f/V*exp(-f/V*tf)
-Cinitial*f/V*exp(-f/V*tf)) = 0
H_f = 3*a1*w*f^2*tf+lamda*(-G/f^2*(1-exp(-f/V*tf))
+(Cout+G/f)/V*tf*exp(-f/V*tf)-Cinitial/V*tf*exp(-f/V*tf)) = 0
H_lamda = (Cout+G/f)*(1-exp(-f/V*tf))+Cinitial*exp(-f/V*tf)-1/1250 = 0
------------------------------------------------------------------------------
老闆說..這樣就可以解出一組最佳參數解..
但是我的問題來了,我想請問板上的高手..這樣子的非線性聯立方程組是不是沒有辦法
利用solve去解? (我想應該也是沒辦法..)
如果要解這種問題又該用什麼方法解? 牛頓拉佛森? 牛頓法?
請板上的高手救命~~~ ~_~"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.126.8.117
推
05/27 15:38, , 1F
05/27 15:38, 1F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):