Calculating a new variable from a symbolic equation
1 回表示 (過去 30 日間)
古いコメントを表示
Helena Hjørringgaard
2020 年 3 月 24 日
コメント済み: Helena Hjørringgaard
2020 年 3 月 24 日
I'm new to Matlab so I hope you can help me :-). I'm using MATLAB r2019a.
I have a array (Q) that I would like to use as a input in a equation and solve for a variable (y). I need the equation to calculate a y for each Q. How do I do that?
So far I've tried this (simplyfied):
Q_full = 0.5
Q = [1,2,3]
syms Q Q_full y
eqn = vpasolve(Q/Q_full == 2+y,y)
The errors I get are:
Error using mupadengine/feval (line 195)
Symbolic parameters not supported in nonpolynomial equations.
Error in sym/vpasolve (line 172)
sol = eng.feval('symobj::vpasolve',eqns,vars,X0);
Error in Model (line 30)
eqn = vpasolve(Q/Q_full == 0.46-(0.5*cos(pi*(y/D)))+(0.04*cos(2*pi*(y/D))),y); <- this is my real equation
0 件のコメント
採用された回答
その他の回答 (1 件)
Walter Roberson
2020 年 3 月 24 日
syms Q Q_full y
That line overwrites the numeric values that you assigned to Q and Q_full. That gives you an equation with more than one unresolved variable. vpasolve can only handle multiple unresolved variables for polynomials.
Do not do the syms on Q Q_full.
In any one call to vpasolve, vpasolve will attempt to find parameter values that satisfy all of the equations simultaneously. It never treats the inputs as a sequence of separate equations, only ever as simultaneous equations.
Therefore, either loop or else arrayfun
arrayfun(@(Qr) vpasolve(Qr == etc, y), Q./Q_full)
参考
カテゴリ
Help Center および File Exchange で Symbolic Math Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!