Re: [討論] 利用MATLAB解偏微分聯立方程?已回收
※ 引述《bawpee (皮)》之銘言:
: 小弟的問題有點煩雜..有錯請小力鞭 @_@
: 然後老闆希望我對這個式子中的 "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去解? (我想應該也是沒辦法..)
: 如果要解這種問題又該用什麼方法解? 牛頓拉佛森? 牛頓法?
: 請板上的高手救命~~~ ~_~"
照你問題的解法屬於optimal control 的基本解法
非線性聯立式可以用fsolve得到數值解
(Newton-Raphson method)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.21.56
推
05/28 03:55, , 1F
05/28 03:55, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):