質問

ジェネラコディセタグプレ

ソリューション{x -> -0.0918521}に収束しますが、ソリューションの前に次のエラーメッセージを回避するようにMathematicaを取得するにはどうすればよいですか? ジェネラコディセタグプレ

FindRootを使用して、かなり厄介な式を解決しています。Mathematicaはまだ答えを出しますが、私は時々次のエラーを受け取ることがありますが、それを回避する方法もあるかどうか疑問に思っています: ジェネラコディセタグプレ

役に立ちましたか?

解決

得られている解決策は実際の解決策ではありません。メッセージは何かが間違っていたことを示し、FindRootxの最後の値を返します。これは、FindRootの「詳細情報」の下の最後の項目です:

  • FindRootが、MaxIterationsステップ内で指定した精度の解を見つけることに成功しなかった場合、見つかった解の最新の近似値を返します。次に、この近似を開始点として、FindRootを再度適用できます。

    たとえば、この場合、解決策もありません: ジェネラコディセタグプレ

    FindRoot::jsingの警告が表示され、 Mathematica {x -> 0.}(最新の概算)を返します。

    このような同様のケースですが、Log関数があります: ジェネラコディセタグプレ

    表示されているものと同様のFindRoot::nlnumを提供し、{x -> 0.000269448}(この場合は最新の近似値)を返します。

    これは、説明のための同じ関数のプロットです:

    Mathematicaグラフィックス

    複素根を含める場合は、FindRootのドキュメントのこの部分を検討してください([詳細情報]も参照):

    • 開始値に0.Iを追加することで、いつでもFindRootに複素根を検索するように指示できます。

      たとえば、次のように、1つの複素根の近くで開始値を取ることができます。 ジェネラコディセタグプレ

      これは(メッセージなしで){x -> 8.46358*10^-23 + 1. I}(つまり基本的にI)に収束します。

      または他の複素根の近くの開始値: ジェネラコディセタグプレ

      基本的に-Iを取得します(正確には、{x -> 8.46358*10^-23 - 1. I}を取得します)。

他のヒント

この方程式の実際の解決策はありません。Mathematicaは最終的に関数の最小値に近づき、アルゴリズムが収束する場所であるため、これを報告します。 ジェネラコディセタグプレ

ここに画像の説明を入力

Mathematicaはこれについて警告します: ジェネラコディセタグプレ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top