1

Matlab2014b 環境で次の方程式を数値的に解こうとしていますが、matlab は数値解を出力せず、代わりに次のように出力します。

>>solve(1/beta(13,11)*x^(12)*(1-x)^(10)==1.8839,x)
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 - (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[1]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 + (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[1]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 - (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[2]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 + (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[2]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 - (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[3]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 + (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[3]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 - (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[4]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 + (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[4]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 - (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[5]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 + (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[5]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 - (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[6]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 + (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[6]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 - (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[7]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 + (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[7]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 - (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[8]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 + (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[8]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 - (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[9]
      RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 + (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[9]
     RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 - (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[10]
     RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 + (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[10]
     RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 - (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[11]
     RootOf(z^11 - 5*z^10 + 10*z^9 - 10*z^8 + 5*z^7 - z^6 + (4096*10^(1/2)*3342794185613871913^(1/2))/66540040320887625, z)[11]

一方、Wolframath で方程式を解くのは問題ありません。何が問題の原因なのか疑問に思っています。方程式には複雑な解があることに注意する価値があるかもしれませんが、私は0と1の間の解にしか興味がありません.

4

1 に答える 1

1

ちょうど今同じ問題に遭遇しましたが、解決策を見つけたと思います。

私が得た情報から、MATLAB はこれを分析ソリューションの表現に単純化することがあります。解を評価するには、単純にvpa関数を呼び出します。これが最小限の再現と解決策です。

    syms x
    solve(x^5 + x + 7)

結果は次のようになります

    ans =

     RootOf(z^5 + z + 7, z)[1]
     RootOf(z^5 + z + 7, z)[2]
     RootOf(z^5 + z + 7, z)[3]
     RootOf(z^5 + z + 7, z)[4]
     RootOf(z^5 + z + 7, z)[5]

試してみてください

    vpa(ans)

次に、数値結果が表示されます。

    ans =

                                           -1.4108138510595771319852918753499
     - 0.5084694089730227818822736708423 + 1.3686164883298987835863274173391i
     - 0.5084694089730227818822736708423 - 1.3686164883298987835863274173391i
      1.2138763345028113478749196085173 + 0.92418811092205120320563065825557i
      1.2138763345028113478749196085173 - 0.92418811092205120320563065825557i

詳細については、MATLAB のドキュメントを参照してください。

http://au.mathworks.com/help/symbolic/solve.html#zmw57dd0e111869

于 2015-10-19T11:12:48.293 に答える