私は解決したい3つの未知数の3つの方程式を持っています。 symbolic toolbox
で方程式を指定しています。私はsolve
関数を使用して数値解決法を見つけるためにMATLABに求めることができることを知っています。しかし、3つの未知数の3つの方程式で、matlabは分析解(fsolve
)を見つけることができるはずです。私はsolve
の代わりにfsolve
を使用できるようにコードを変更する方法がわかりません。SolveからFsolveまで
:私は解決策を見つけた一方
すべてクリア
syms Kl Kh alpha nu w phi delta P beta zh zl Ezh Ezl
nu1 = (1/(1-nu));
f1 = ((zl * (Kl^alpha))^nu1 + (zh * (Kh^alpha))^nu1) * nu^(nu*nu1) * (w^(-nu*nu1)) - w/phi + delta*(Kl + Kh)*P
f2 = Kh - (((1-beta*(1-delta))*P * (w^(nu1*nu))*(nu^(nu*nu1)))/(beta*alpha* (Ezh)^nu1))^((1-nu)/(alpha+nu-1))
f3 = Kl - (((1-beta*(1-delta))*P * (w^(nu1*nu))*(nu^(nu*nu1)))/(beta*alpha* (Ezl)^nu1))^((1-nu)/(alpha+nu-1))
f1 = subs(f1, {alpha, beta, nu, phi,delta, zh, zl, Ezh, Ezl, P}, {0.27, 0.96, 0.60, 2.15,0.065,1.11687642219068,0.895354204038589,1.07811003137331,0.934120594855956, 0.95})
f2 = subs(f2, {alpha, beta, nu, phi,delta, zh, zl, Ezh, Ezl, P}, {0.27, 0.96, 0.60, 2.15,0.065,1.11687642219068,0.895354204038589,1.07811003137331,0.934120594855956, 0.95})
f3 = subs(f3, {alpha, beta, nu, phi,delta, zh, zl, Ezh, Ezl, P}, {0.27, 0.96, 0.60, 2.15,0.065,1.11687642219068,0.895354204038589,1.07811003137331,0.934120594855956, 0.95})
S = solve([f1 == 0, f2 == 0, f3 == 0],...
[w, Kh, Kl], 'ReturnConditions', true);
'fsolve'は*数値*ソリューションではなく、分析的なものを見つけるために使用されます。シンボリックな数学ツールボックスの 'solve'は、解析的な解(存在する場合)を見つけることができますが、他の方が可変精度の数学を使って数値解を見つけるでしょう。数値ソリューションをお探しですか? – horchler
はい、私の謝罪です。私は数値的な解決策を意味しました。 – phdstudent