1

私はMatlabが初めてです。私は使用しようとしていますsolve:

syms x y
S = solve(x^2 + y^2 + x*y < 1, x > 0, y > 0, [x, y]);

solx = S.x
soly = S.y

しかし、Matlab は次のように返します。


警告: 2 つの変数に 5 つの方程式があります。

C:\Program
Files\MATLAB\R2012a\toolbox\symbolic\symbolic\symengine.p>symengine at 54 内

      mupadengine.mupadengine>mupadengine.evalin で 97

      mupadengine.mupadengine>mupadengine.feval で 150

      160 でソルブ中

警告: 明示的な解が見つかりませんでした。> 169 で解決中

コンマ区切りのリスト展開には、セルではない配列のセル構文があります。

sym/subsref のエラー (1575 行目)

      [inds{k},refs{k}] = privformat(inds{k});


このエラーを修正する方法を誰か教えてもらえますか?

4

1 に答える 1

0

可能であれば、最初に行うことは、新しいバージョンの Matlab を使用することです。Symbolic Math ツールボックスは、近年多くの更新が行われています。

私は R2015a を使用しているため、あなたのケースを正確にテストすることはできません。ただし、試すことができるいくつかのことがあります。まず、assumptions(R2012a アーカイブ ドキュメントへのリンク) を使用します。第二に、あなたのエラーは[x y]、個別の変数ではなくベクトル を解くことによって引き起こされるxと思いますy. 古いバージョンの Matlab を使用する場合は、お使いのバージョンのアーカイブされたオンライン ドキュメントを確認するか、コマンド ウィンドウで使用helpdocてください (Google が表示するのは現在のバージョンのみです): R2012aのアーカイブされたドキュメントsolve

あなたの例に適用された変更は次のとおりです。

syms x y;
assume(x > 0);
assume(y > 0);
S = solve(x^2 + y^2 + x*y < 1, x, y)

これでも警告が返されます。

警告: 解は記号 u、v でパラメーター化されます。解にパラメーターと条件を含めるには、'ReturnConditions' オプションを指定します。
>解決中>warnIfParams (行 510)解決
   中(行 360) 警告: 解は次の条件下で有効です: 4*v^2 < u & u < 4 & 0 < v. 解にパラメータと条件を含めるには、'ReturnConditions' オプションを指定します。 > solve>warnIfParams (517 行目)解決    中(360 行目)



S = 

    x: [1x1 sym]
    y: [1x1 sym]

しかしまた収穫

(- 3*v^2 + u)^(1/2)/2 - v/2

S.xとのためvS.y

于 2015-05-08T20:15:01.840 に答える