任意の形の波形を関数でフィッティングする方法は?

このQ&Aのポイント
  • 任意の形の波形を関数でフィッティングするためには、波形の特性に合った適切な数学的モデルを選ぶ必要があります。
  • フィッティングパラメータの数が増えると、解が複数存在する可能性があります。その場合は、適切な制約条件を設定して解を絞り込む必要があります。
  • 波形のフィッティングに関する情報は、数学や信号処理に関する参考書や論文、または関連するオンラインリソースで見つけることができます。
回答を見る
  • ベストアンサー

任意の形の波形を関数でフィッティングするためにはどうしたら良いですか?

任意の形の波形を関数でフィッティングするためにはどうしたら良いですか? ある実験より得られた波形があります。 その波形が多項式によってフィッティング可能であると仮定してフィッティングを行いたいのですが、 どうすれば良いのでしょうか? 例えば、その波形が10乗までの関数で表されると考えたとしても y=A + Bx^1 + Cx^2....Kx^10 とフィッティングパラメータが11個もあるわけですよね? そうすると、フィッティングをかけたとしても、一通りだけでなく幾通りも解が出てきてしまうのではないでしょうか? 昔、電子工学の授業でこういう任意の波形のフィッティング式の作り方に関して 習ったことがあるのですが、完全に忘れてしまいました。 どなたかご存じでしたら、参考書などを教えて頂けますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

実用的には,先の二人の回答者が考えてみえるパラメトリック回帰ではなく,ノンパラメトリック回帰になるんでしょうね. 例えば,RBFとかKrigingとか. 設計最適化における応答曲面近似においては,一般的に利用されています. 一方,化学の世界の機器分析では,ニューラル・ネットワークのような学習的手法が利用されます. イオンクロマト分析のスペクトル解析などに使われています.これは,ピークの出る位置が先験的に分かっていて,繰り返し出てくる場合などに応用できます. その先には,EMアルゴリズムとかベイジアン・ネットワークとかがあるようですが, 私は詳しくないので,他の方に説明はお任せします. 参考書:洋書ですが,David Ruppert,M.P.Wand,R.J.Carroll(2003):Semiparametric Regression,Cambridge University Press (ペーパーバックで8000円くらい)

dasugedegg
質問者

お礼

回答ありがとうございます。 線形最小二乗法のことはもちろん知っているのですが、 一から自分でプログラムのではなく、Excelのソルバー機能を使えば良いと考えております。 問題は解が一つではない場合どのようにして解を選定すれば良いのか、ということなのですが・・・ 一次式であれば、解は一つしかないでしょうが、 次数が上がるに従って、解の数が異様に多くなってしまうと思うのですが・・・

その他の回答 (2)

回答No.2

この形ならデータが11組以上あれば一意的に決まります。 測定値が(xi,yi) (i=1~N)として、一行が 1 xi xi^2 ・・・・xi^10 であるN行11列の行列をX、11個のパラメータA~Kを並べた列ベクトルをa、yiをN並べた列ベクトルをy、Xの転置行列をXtとして Xt・X・a=Xt・y (正規方程式) という方程式を、Xt・Xの逆行列を求めてときます。 a = (Xt・X)^(-1)・Xt・y 実際に計算する祭には、両辺のXtを除いた Xa=y をQR分解などを利用してaを決めるほうが、逆行列を求めるより有利だといわれています。 なぜこうなるのかは、線形最小二乗法で検索してください。1次式まではたくさんありますが、2次以上まで書いてあるところはだいぶ少ないようですが、いくつかはあります。

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

最小二乗法を用います。詳しくは本やネットで調べてください。 基本的な考え方は曲線とデータとの距離が最小になるように係数を決めるというものです。

関連するQ&A

  • 次数が未知の最小二乗法について

    最小二乗法により実験データを解析したいと考えています。 n回の測定でyとxを求め、 y=ax^2+bx+c という二次関数でフィッティングする場合、未知パラメータabcを擬似逆行列で求めるというところまでは分かったのですが、 y=ax^d+bx+c というように、未知パラメータがabcに加えて、次数のdも未知の場合にはどのように解いたら良いのでしょうか。 どなたか分かる方、教えてください。

  • 任意の4次関数の極大値、極小値を求めるプログラムを書きたい

    任意の4次関数y=ax^4+bx^3+cx^2+dx+eの極大値、極小値を求めるプログラムをC言語で書きたいのですが、それを求める公式やアルゴリズム、またはフリーで使えるライブラリってあるでしょうか? 係数a,b,c,d,eは任意の実数をとります。

  • 非同次微分方程式の特殊解について

    非同次微分方程式の特殊解は Q(x)=Ax^n あるいは Q(x)=Ax^n + Bx^(n+1) +…(n次多項式の場合) ・特性方程式の解に0が無ければ、η(x)=kx^n + lx^(n+1) +…+m ・特性方程式が単解0をもてば、  η(x)=x(kx^n + lx^(n+1) +…+m) ・特性方程式が重解0をもてば… などη(x)の置き方がいろいろありますよね。 他にも、三角関数の時や指数関数の時など。 こういった特殊解は、覚え方などあるのでしょうか? 自力で丸覚えするしかないのでしょうか? 解き方は分かるのに、特殊解をη(x)=…なんだったっけかな…と思うことがしばしばあります。 覚え方があるのなら教えて下さい。

  • 3次関数の定数の求め方

    とある任意の2点p1(x1,y1)、p1(x2,y2)が与えられた時に 3次関数y=ax^3+bx^2+cx+dのa,b,c,dはどのようにして求めればよいのでしょうか。。 2次関数までは結構簡単に求められたのですが・・・ 3次になった途端やり方がまったくわかりません。。 どなたか教えていただけないでしょうか。

  • 第3次導関数は,何を表していますか? 

    a,b,c,d を 0 でない実数として,y=f(x) を3次以上の多項式、例えば y=f(x)=ax^3+bx^2+cx+d のとき,上式を微分した導関数 y'=f'(x) は,曲線の接線の傾きを表し、更に微分した第2次導関数 y"=f"(x) は,曲線の一部を円と見なした曲率円のほぼ曲率を表していますが、第3次導関数は,曲線の何を表していますか? 

  • gnuplotでガウス-ローレンツ混合関数フィッティング

    物理学での実験データをgnuplotでガウス-ローレンツ混合関数フィッティングすることはできましたが,非対称項(x-p) -> (x-p)/[1+a*(x-p)/w], where -2≦a≦2 を取り入れるとエラー(Undefined value during function evaluation)が発生します.なぜでしょうか. ちなみにこの非対称項は 小島勇夫・福本夏生・倉橋正保;非対称ガウス―ローレンツ複合関数によるX線光電子分光スペクトルの波形解析;分析化学;Vol.35, No.10(19861005), pp. T96--T100 を参考にしました.

  • MATLABで指数関数を含む方程式の複素数解を求め

    MATLABで多項式と指数関数からなる方程式の解を求めたいと考えています。 実数解だけでなく、複素数解も求める必要があります。 例えば、 x^2-exp(x)=0 のような方程式を解きたい場合、 fzero(@(x)(x^2-exp(x)),2) を実行すれば、-0.7035という実数解が得られます。 しかし、複素数解は得られません。 なんとかして、複素数解も得られませんか? roots()関数を使えば、多項式からなる方程式に対しては、 複素数解を求めることができます。 しかし、今回の場合は使えません。 指数関数をテーラー展開する方法を考えたのですが、 解がどのあたりにあるのか見当がつかないので、 どの点周りにテーラー展開すれば良いのか分かりません。 最終的には、制御工学で遅れ型むだ時間を含むシステムの極を調べたいのですが、 特性方程式に指数関数が入ってくるので、どうやって求めれば良いのか分からずにいます。 どなたか、知恵を貸して頂けないでしょうか。 よろしくお願い致します。

  • にゃんこ先生の自作問題、4次関数が2つの2次関数の合成で書ける条件

    にゃんこ先生といいます。 4次方程式 x^4+ax^3+bx^2+cx+d=0 には、難しいにゃがらも公式があり、その過程では3次分解方程式にゃどというものを解く必要があり、さらにそのために、2次方程式を解く必要があります。 結局、公式は、平方根と3乗根と四則を使ってかけることが知られています。 そこで、4次方程式が平方根(二重根号であってもよい)と四則のみを使って解ける条件を考えてみました。 同じことですが、4次方程式の係数の長さが与えられたとき、解を定規とコンパスをもちいて書ける条件です。 このとき、4次方程式は、p,q,r,sをもちいて、 x^4+ax^3+bx^2+cx+d=(x^2+px+q)^2+r(x^2+px+q)+s=0 と書けるはずで、両辺の3次の係数を比べることで、p=a/2とにゃらにゃければいけにゃいことがすぐに分かり、他の係数を比べて、 2q+r=b-a^2/4 2q+r=2c/a q^2+rq+s=d とにゃります。 よって、求めたい条件は、b-a^2/4=2c/a とにゃりました。 このとき、qを勝手に決めれば、それによってr,sが定まります。 今度は、方程式でにゃく、関数を考えます。 4次関数 y=ax^4+bx^3+cx^2+dx+e が2つの2次関数の合成で書けるときのa,b,c,d,eの条件はにゃんでしょうか? また、どのようにかけるのでしょうか?

  • 常備分方程式です

    ωはξの関数とします。 このとき ξ(∂ω/∂ξ)+4(∂ω/∂ξ)^2+4ω(∂^2ω/∂ξ^2)=0 を考えています。 私はω=cξ^2と仮定して解いた結果、ω=-ξ^2/12と解を求められました。 しかし、多項式の形の解ではなく、他の形の解も求めてみたいのです。 どなたか解法をよろしくお願い致します。

  • 実験データからモデル式の4変数パラメータ推定方法

    実験データからモデル式の4変数パラメータ推定を MATLAB Global Optimizationツールボックスの patternsearch関数を使用してフィッティングしています。   サンプル毎に重みを適切に設定しないとうまくフィッティングできなく困っています。おすすめの関数や、 なにか、適切なアドバイスがいただたけましたら、 幸いです。