免責事項。私は Mathematica には精通していますが、Matlab には精通していません。初心者の質問でしたら申し訳ありません。
Matlab の solve コマンドを使用すると、次のように Matlab で奇妙なエラーが発生します。
solve(0.2 = (1.4+1/2)^((1.4+1)/(2*(1.4-1)))*(M)/((1+(1.4-1)/2*M^2))^((1.4+1)/(2*(1.4-1))), M)
エラーは次のとおりです。
Error: The expression to the left of the equals sign is not a valid target for an assignment.
Mathematica の同等の Solve コマンド (同じ式を使用) は完全に機能するため、式自体が無効であるとは思いません。さらに、ドキュメント サイトの例を使用しようとすると、同じエラーが発生します: http://www.mathworks.com/help/symbolic/mupad_ref/solve.html
それは構成の問題ですか、それとも私が誤解しているコマンドの構文について何かありますか?
編集: = の代わりに == も試しましたが、別のエラーが発生しました:
Undefined function or variable 'M'.
また、メモとして、Matlab R2011b (7.13.0.564) 64 ビット (glnxa64) を実行しています。
Edit2: syms を使用して最初に提案されたソリューションを試しました:
>> syms M
>> solve(0.2 == (1.4+1/2)^((1.4+1)/(2*(1.4-1)))*(M)/((1+(1.4-1)/2*M^2))^((1.4+1)/(2*(1.4-1))), M)
Error using char
Conversion to char from logical is not possible.
Error in solve>getEqns (line 245)
vc = char(v);
Error in solve (line 141)
[eqns,vars,options] = getEqns(varargin{:});
Edit3:最も単純な方程式でもこの問題を再現できました
>> syms x
>> solve(x^2 -4 == 0, x)
Error using char
Conversion to char from logical is not possible.
Error in solve>getEqns (line 245)
vc = char(v);
Error in solve (line 141)
[eqns,vars,options] = getEqns(varargin{:});
さらに、ここで提案されている解決策も試してみました: MATLAB の例が失敗しています