- ベストアンサー
MATLABで指数関数を含む方程式の複素数解を求める方法
- MATLABで多項式と指数関数からなる方程式の解を求める方法について説明します。
- roots()関数を使って多項式方程式の複素数解を求めることができますが、指数関数を含む方程式には適用できません。
- 指数関数をテーラー展開して解を求める方法はありますが、どの点周りに展開すれば良いかは問題です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じ? Matlab 手元に無いんで未確認です。 _はスペースね。 初期値によっては収束しませわんが・・・ ini=[ 1_1 1_-1 -1_1 -1_-1 ]; x = fsolve(@hoge, ini); xx = complex(x(1:end,1),x(1:end,2)) function y = hoge(x) compx = complex(x(1:end,1), x(1:end,2)); compy = compx.^2-exp(x); y = [real(compy) imag(compy)];
その他の回答 (2)
- Knotopolog
- ベストアンサー率50% (564/1107)
#1です. 数値計算のソフトではありませんが,私が時々使う強力な数式処理ソフトを,何かのお役に立つかも知れませんので,貼り付けておきます. Risa/Asir (リサ/アジール 数式処理ソフト) http://www.math.kobe-u.ac.jp/Asir/asir-ja.html /pub/asir のインデックス ftp://ftp.math.kobe-u.ac.jp/pub/asir
- Knotopolog
- ベストアンサー率50% (564/1107)
以下のサイトを使ってみて下さい. x^2-exp(x)=0 を入力して,〓 を押すと解が表示されます. Wolfram|Alpha Computational Knowledge Engine http://www.wolframalpha.com/ x^2-exp(x)=0 の解は,ランベルトのW関数で表示されます. ランベルトのW関数は,下記のサイトをご参照下さい. ランベルトのW関数 http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%83%99%E3%83%AB%E3%83%88%E3%81%AEW%E9%96%A2%E6%95%B0
お礼
回答ありがとうございます。 私が適当に出した例が、解析的にとけるなんて驚きました。 簡単な方程式ならそのようなサイトで解を求めることができるんですね。 しかし、ゆくゆくは、もっと複雑な非線形の連立方程式を解きたいので、 解析的には解けなくなるかもしれません。 なので、数値計算で求められる方法もご存知であれば、ぜひご教示ください。
お礼
回答ありがとうございます。 fsolveを使用するには、Optimization Toolboxが必要なようですね。 なんとか、Optimization Toolboxが入っているPCを探してみることにします。 特別なToolboxが不要な方法は、やはりありませんか? 自分でプログラムを書くか、 csolveなどのフリーの関数を拝借するしかありませんか?