- ベストアンサー
複数の関数からなる関数とは?具体的な表現方法や計算ツールについて教えてください
- 複数の関数からなる関数とは、複数の関数を組み合わせて新しい関数を作る方法です。具体的な表現方法としては、C=h(f(x), g(y))の形で表現することができます。ただし、f(x)とg(y)が互いに独立であれば、C=a*f(x) + b*g(y) + cのように表現することも可能です。
- f(x)とg(y)が互いに独立である場合、C=a*f(x) + b*g(y) + cのように表現することができます。ただし、aとbの数値の出し方がわからない場合、カーブフィッティングや近似式を計算するツールを使用することができます。
- f(x)やg(x)の近似式を求めるためにエクセルを使用しているが、限界を感じている場合は、カーブフィッティングや近似式を計算するツールを使用することをおすすめします。これらのツールはフリーでも利用することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
fを決めるには、2つの数値からなるデータ(x[i], A[i]) がL組(i=1,2,…,L)あって、これに合うように、つまり f(x[i])≒A[i] になるように、(たとえば一次式として)決めた。gもデータ(y[i], B[i]) (i=1,2,…,M)に基づいて決めた。 …ということじゃないでしょうか。 当然ながら、Cについても同様に、(A[i], B[i], C[i]) (i=1,2,…,N)という3つの数値からなるN組のデータがなくては話が始まらない。(C=h(f(x),g(y))なんてお書きですが、「CはAとBで表現できる」と仮定するのですから、必要なのはA, Bの値であって、xやyなんかどうでも良いのです。)これをまずは表計算ソフトに入力して、3次元グラフとしてプロットしてみる。また、このデータのC[i]のところを log(C[i])に差し替えたり、あるいは exp(C[i])に差し替えたりもしてみる。 で、あんまり急峻な部分が現れないようなら、C(あるいはlog(C), exp(C))を多項式モデル h(A, B) = a[0,0] + a[1,0] A + a[0,1] B + a[1,1] AB + a[2,0] A^2 + a[0,2]B^2 + … で近似することを試みると良いでしょう。係数a[j,k]の計算には、線形最小二乗法を使います。 モデルhの項の個数はデータの数Nに比べてうんと少ないのが良い。最初は0次近似 h(A, B) = a[0,0] で考えてみて、これじゃ駄目だというのなら、1次近似 h(A, B) = a[0,0] + a[1,0] A とか h(A, B) = a[0,0] + a[0,1] B とか h(A, B) = a[0,0] + a[1,0] A + a[0,1] B を考える。これでも駄目なら…、という風に項の個数をだんだん増やして行きます。あんまり欲張らず、項の数を増やしすぎないようにするのがポイントです。 項の数をどのぐらいにすればいいか、ということを客観的に調べる方法としてはAIC(赤池の情報量規範)というものがあります。 実際の計算は表計算ソフトを使いこなしさえすれば十分できるんですが、どう使いこなすかは(ウラワザがどうとか、そういうセコい話ではないので)説明はちょっとしんどい。(上記のような、数値3つでひと組のデータがどっさり準備できているのなら、説明してもいいですが。) その場しのぎではなく、今後も応用が利くように最小二乗法の基本を一通りキチンと学ぶ意思がおありなら、教科書で勉強なさるべきです。お薦めは、中川・小柳「最小二乗法による実験データ解析」(東京大学出版会)。