1

私はMatlabSymbolicToolboxをその解決機能とともに使用しており、4つの方程式の非線形システムを解決しようとしています。

4つの変数を使用:

x1 y1 x2 y2

および4つのパラメータ

 delta1 delta2 alpha beta

方程式は次の画像で説明されています。 非線形方程式

Matlabのコードは次のとおりです。

syms x1 x2 y1 y2 alpha beta delta1 delta2

[x1,y1,x2,y2] = solve('delta1 * x1^alpha * y1^(1 - alpha) = (1 - x2)^alpha * (1 - y2)^(1-alpha)',...
    'delta2 * x2^alpha * y2^(1 - alpha) = (1 - x1)^beta* (1 - y1)^(1-beta)',...
    'alpha / (1-alpha) * (1 - y2) / (1 - x2) = beta / (1 - beta) * y2/x2',...
    'alpha / (1-alpha) * y1 / x1 = beta / (1 - beta) * (1 - y1) / (1 - x1)','x1','y1','x2','y2')

Matlabは以下を返します:

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

>81で解決中

ただし、との両方を置き換えようalphabetaすると0.5

[x1,y1,x2,y2] = solve('delta1 * x1^0.5 * y1^ 0.5 = (1 - x2)^0.5* (1 - y2)^0.5',...
    'delta2 * x2^0.5 * y2^0.5 = (1 - x1)^0.5* (1 - y1)^0.5',...
    '(1 - y2) / (1 - x2) = y2/x2',...
    'y1 / x1 = (1 - y1) / (1 - x1)','x1','y1','x2','y2')

その後、Matlabが結果を出します。

だから私は疑問に思う:

  1. 方程式は本当に解けないのですか?

  2. それが解決できる場合、私はMatlab Symbolic Toolboxを間違った方法で使用していますか?Matlabは実際にそれを解決することができます。

  3. Matlabがそれを解くのに十分な能力がない場合、非線形方程式システムを解くことができる他のツールはありますか?

4

2 に答える 2

3

ほぼ確実に、いいえ、これらは分析的に解決できません。アルファとベータが1またはゼロ(または明らかに1/2)でない限り、方程式は分析解の次数が高すぎるものと同等になりますが、もっと注意深く見なければそれを確信することはできません。しかし、一般的な実際のアルファの場合、これはやりすぎです。

はい、私はコンピューターが大きく、速く、強力であることを知っています。彼らは何でもできますよね?しかし、このような連立多項式を解こうとするとどうなるか見てみましょう。

たとえば、2つの未知数の2つの二次方程式は、未知数の1つを削除すると、4次方程式になります。係数が一定でない4次多項式は解くことができます。しかし、4つの方程式があり、それぞれが本質的に2次方程式です。(各方程式には変数の積があります。)したがって、シンボリックに解こうとすると、そのうちの4つは8次多項式に相当します。一般的な非定数係数があります。また、5次多項式以上では、一般に解析解が得られないことがわかっています。したがって、幸運になるかもしれませんが、おそらくアルファとベータのいくつかの特別な値については、ほぼ確実に、そのような分析ソリューションはありません。

そして、一般的な実際のアルファの場合、状況はさらに悪化します。解決策が存在するという期待はまったくありません。あなたが試みたとき、それが失敗したという事実はそれを裏付けます。しかし、ねえ、より大きなコンピューターが答えを見つけるかもしれません。申し訳ありませんが、真実ではありません。

于 2012-10-10T12:56:34.353 に答える
2

mupadMatlabのコマンドを試してみてください。シンボリックライブラリよりもはるかに強力なMapleに似たシンボリックプログラミング環境を開きます。方程式に解がある場合(いくつかの架空の方程式でさえ、または解がある場合は本当に特定のケースです)、シンボリック環境は確実にそれらを見つけます。

試してみる!

編集: @woodchipsの回答を見て(これについては私よりもはるかに多くのことを知っているようです!)、既知のアルファベータ範囲の方程式を解くこともできます。それらがどのような値を持つかを想定し、範囲から反復することができます。それがうまくいくかどうかはわかりません、それはあなたの場合に私がやろうとしていることです。

それでも試してみるのをやめないでくださいmupad、それはうまくいくかもしれません(あなたが仮定をするならば:assume alpha realコマンドの種類。ヘルプをチェックしてください)

于 2012-10-10T09:18:02.067 に答える