• 締切済み

指数関数近似を行うプログラムを早急に作成する必要があり、

指数関数近似を行うプログラムを早急に作成する必要があり、 質問させていただいています。 理論上、 y=a1・e^(a1・x)+a2・e^(a2・x) (*) でフィッティングできる実験データがあり、 この実験データを理論式(*)で近似するプログラムを作成したいのですが、 どのようにして実現したらいいのか悩んでいます。 y=a1・e^(a1・x)でしたら対数をとる、等が考えられますが、 上記の例の場合、どのような理論に基づいてa1、a2を求めたらいいのでしょうか。 わかりやすい参考書等もおススメあれば教えていただけたらと思います。 プログラム言語はどのようなものでもかまいません。 よろしくお願い致します。

みんなの回答

  • spring135
  • ベストアンサー率44% (1487/3332)
回答No.3

y=a1・e^(a1・x)+a2・e^(a2・x) は指数関数の和として定義されてますが、a1,a2の効果が強くでます。 a1,a2の正負はどうなっていますか。 最も解りやすいのは片対数用紙にプロットすることです。y=a1・e^(a1・x)とy=a2・e^(a2・x) は各々直線になりこれらの和として、y=a1・e^(a1・x)+a2・e^(a2・x)が描けます。 逆にデ-タをプロットして2つの直線に分解する方法を見つければよろしい。

  • f272
  • ベストアンサー率46% (8529/18257)
回答No.2

その程度の式ならエクセルのソルバーで十分だと思う。 A列に実験データのxを B列にそれに対応する実験データのyを C列に実験データのxから理論式を使って求まるyを(A列の数値と↓で入力するD1,D2の数値を使えばOK) D1にa1の初期値を D2にa2の初期値を D3に(B列の数値-C列の数値)の平方和を 入力すれば,あとはソルバーを使ってD1とD2を動かしながらD3を最小化するだけ。

回答No.1

非線形の最小二乗法ですね。 私以外の回答者が詳しく説明されているので、参照してください。 http://okwave.jp/qa/q5842131.html 私は、ここで書くには少々複雑過ぎる話だと思うので、 上の過去QAで納得できなければwebを検索してください。

関連するQ&A

専門家に質問してみよう