dポイントプレゼントキャンペーン実施中!

指数関数近似を行うプログラムを早急に作成する必要があり、
質問させていただいています。

理論上、
y=a1・e^(a1・x)+a2・e^(a2・x) (*)
でフィッティングできる実験データがあり、
この実験データを理論式(*)で近似するプログラムを作成したいのですが、
どのようにして実現したらいいのか悩んでいます。

y=a1・e^(a1・x)でしたら対数をとる、等が考えられますが、
上記の例の場合、どのような理論に基づいてa1、a2を求めたらいいのでしょうか。

わかりやすい参考書等もおススメあれば教えていただけたらと思います。
プログラム言語はどのようなものでもかまいません。
よろしくお願い致します。

A 回答 (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つの直線に分解する方法を見つければよろしい。
    • good
    • 0

その程度の式ならエクセルのソルバーで十分だと思う。


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

非線形の最小二乗法ですね。



私以外の回答者が詳しく説明されているので、参照してください。
http://oshiete.goo.ne.jp/qa/5842131.html

私は、ここで書くには少々複雑過ぎる話だと思うので、
上の過去QAで納得できなければwebを検索してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!