[英]Solving a symbolic, nonlinear equation in Matlab/Octave
我正在嘗試求解 x 的以下穩態方程:
0 = -C + 2*C0*(1-exp(-k*A*x*phi))
我已將所有變量定義為syms ,但無法弄清楚如何求解 x 的方程。 由於所有其他變量都是已知的,我嘗試將它們替換為:
f = -C + 2*C0*(1-exp(-k*A*x*phi))
subs(f, [C 20], [C0 11], [k .015], [A .031], [phi .01])
但這也行不通。
使用subs
用值替換符號變量的正確方法是使用三個輸入變量。 第一個是符號表達式, 第二個是要替換的符號變量數組, 第三個是要替換第二個輸入中的每個變量的數組。
syms C C0 k A x phi
f = -C + 2*C0*(1-exp(-k*A*x*phi));
% Substitute in values that are known
newf = subs(f, [C, C0, k, A, phi], [20, 11, 0.015, 0.031, 0.01]);
% 2 - 22*exp(-(93*x)/20000000)
% Solve the resulting symbolic expression for x
result = solve(newf == 0, x)
% (20000000*log(11))/93
% And if you need a numeric (rather than symbolic) result
double(result)
% 5.1568e+05
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.