• ベストアンサー

データ群を y=a+b*x^0.5 で近似しaとbを求めたい

数値解析初心者です。 あるデータ群(x,y)が20個ほどあり、このデータを y=a+b*x^0.5 の式で近似すると a と b がいくつになるのか、求め方を教えていただけないでしょうか。よろしくお願いします。

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

  • ベストアンサー
  • kumipapa
  • ベストアンサー率55% (246/440)
回答No.2

求めるパラメタに関しては線形な式ですので、単純に線形最小二乗法で求める方法を示します。 データのセットをx(i),y(i), i=1,2,...,nとします。 R^2 = Σ(y(i)-a-b√x(i))^2 (加算範囲はi=1からn 以下では省略) とおいて、 ∂R^2/∂a = 0 ∂R^2/∂b = 0 を解けば良く、これよりa,bに関する連立方程式 n a + (Σ√x(i)) b = Σy(i) (Σ√x(i)) a + (Σx(i)) b = Σ(y(i)√x(i)) を得ます。 A= n, B=Σ√x(i), C= Σy(i), D= Σx(i), E= Σ(y(i)√x(i)) とおくと、解は、 a = (CD-BE)/(AD-B^2) b = (AE-BC)/(AD-B^2) となります。

その他の回答 (2)

  • kgu-2
  • ベストアンサー率49% (787/1592)
回答No.3

エクセルをお持ちという前提で。 > y=a+b*x^0.5 x^0.5は、ルートxなので、それをXとおけば、y=a+bXという式(回帰式という)に変換して、aとbを求めることになります。これは、エクセルを使えば、簡単にできます。  グラフの散布図を描き、近似式を求めることになります。方法がご存知でないのなら、過去の書き込みをご覧になるか、その旨書き込んで下さい。  x^0.5となっていますが、この0.5乗に根拠はありますか。もしも、aの値が0に近い、または無視できるのであれば、近似式の指数回帰を利用すると、適正な値を算出できますが。

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.1

フリーソフトの「gnuplot」を使えば簡単に出来るでしょう。 特定の関数で近似することをフィッティングと言います。 参考URLのダウンロード先から入手してインストールして使って下さい。 参考URLの「その他もろもろ」の所の最小自乗フィッティングの所に使い方の例題が載っています。 フィッテッング関数をf(x)=a+b*x^0.5とすれば良いかと思います。 有名なソフトですのでネットを検索すれば、入手先、インストールの仕方、使い方、フィッテングの例題など沢山出てきますので、Googleなどで検索してみてください。 http://www.google.co.jp/search?num=100&hl=ja&q=gnuplot+%E3%83%95%E3%82%A3%E3%83%83%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_en%7Clang_ja

参考URL:
http://t16web.lanl.gov/Kawano/gnuplot/

関連するQ&A

専門家に質問してみよう