複数の点を通る曲線の指数関数近似の計算方法

このQ&Aのポイント
  • 複数の点(x, y)を通る曲線を指数関数(y = a^x + c)で近似する方法について学びましょう。
  • 指数関数の近似には、与えられた座標点を利用して指数aと定数cを求める必要があります。
  • また、未知の変数が2つ(aとc)の場合、2つの近似座標があれば指数関数を確定することができます。
回答を見る
  • ベストアンサー

複数の点(x,y)を通る曲線を,指数関数(y = a^x + c)ので近似するときの計算方法

初歩的な質問ですみません. 複数の点(x, y)の近くを通る指数関数(y = a^x + c)を, 近似で出したいとき,指数aや定数cの求め方についてです. ■前提条件 ・y = f(x) = a^x + c とする (a:指数,c:定数) ・座標1 (x1,y1)=(50,5)の近くを通って欲しい ・座標2 (x2,y2)=(1000,30)の近くを通って欲しい ■解法の糸口(自分でやってみたこと) ・y=a^x は,a=y^(1/x),またx=log_a(y) ともかけるので, 1.とりあえずcは無視して,座標1を代入すると,   5=a^50 ⇔ a=5^(1/50)=1.032712419896443 2.座標2を代入すると,   30=a^1000 ⇔ a=30^(1/1000)=1.0034069880166463 3.1.と2.の答えが違っているため,どちらをどう使っていいかわからない   しかも,まだcは考慮できていない. Webでも調べたりして,いろいろ試行錯誤したのですが, 頭が混乱してきて,お手上げ状態になってしましました…. よろしければ,導出方法を計算過程を記して教えていただけると嬉しいです. 必要に応じて,関数電卓をお使いください. ※a^bを計算するときは,pow(a,b)と入れないと正しい答えを返しませんのでご注意ください. http://tomari.org/main/java/dentaku_kansuu.html ※ちなみに,指数関数y=a^x+cは,座標が最低何個わかればaとcが求まるのでしょうか?  未知の変数の数は2個(aとc)なので,2個あれば確定するのでしょうか. N個の近似となると別に確定する必要はないのですが,知っておかないといけない情報かもしれません. ちなみに,これまで関数近似については,最小二乗法(直線の近似)以外, 高校以来,あまり勉強したことはありません. (つまり,指数関数の本質,数学的な知識は乏しいです….) 以上です,よろしくお願いいたします.

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

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2

補足(1) a^50(a^950-1)-25 = 0 を解けばいいですが、 excelでやるなら、ソルバーの機能を使えばいいでしょう。 正直、私はexcelには詳しくないので 「excel ソルバー」とかで検索してみるといいと思います。 補足(2) 普通は最小二乗法を使います。excelでやるならこれもソルバーでできます。 http://homepage1.nifty.com/gfk/square_solver.htm に、N次関数で近似する例が載っていますが、指数関数で近似する場合も同様にできます。

merusaia
質問者

お礼

大変的確な補足,ありがとうございました. excelを使いこなすと,最小二乗法の計算も容易にできるのですね. 参考URLも非常にわかりやすいサイトを選んでもらい,本当に助かりました. rabbit_catさんの回答で満足したので, ここで回答を締め切りたいと思います. ありがとうございました.

その他の回答 (1)

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

>※ちなみに,指数関数y=a^x+cは,座標が最低何個わかればaとcが求まるのでしょうか?  >未知の変数の数は2個(aとc)なので,2個あれば確定するのでしょうか. その通り。 というわけで、未知数がa,cの2個で、座標1 (x1,y1)=(50,5)、座標2 (x2,y2)=(1000,30)の2点が与えられているので、近似ではなくて、厳密にこの2点を通るように、aとcを決められます。 1.ちゃんとcも無視しないで、座標1を代入すると, 5 = a^50 + c … (1) 1.cを無視しないで、座標2を代入すると, 30 = a^1000 + c … (2) というわけで、(1)と(2)を連立させてa,cについて解けばいいです。 実際に解くのは数値計算しかないですが、 a = 1.0030570062962585087533299236029851259021224685666… c = 3.8351210713869479819882604408568938733579605262382… といった感じになります。

merusaia
質問者

お礼

>rabbit_catさん 夜分遅くに,迅速な回答,どうもありがとうございました. とても助かりましたm(_ _)m. >1.ちゃんとcも無視しないで、座標1を代入すると, そうでした….なんでcを無視し続けちゃったんだろ><;.. 単に連立一次方程式の理屈でした….気づかせていただき,ありがとうございます . 続いての質問で誠に恐縮ですが, 関連する(1)~(2)の教えていただけると幸いです. >実際に解くのは数値計算しかないですが、 (1)他の任意の値でも,aとcを(プログラム上で)計算したいので, もしよろしければ,計算する手段(方程式/Excel/フリーソフトでも可)を教えていただけないでしょうか?   人が見た時の計算過程は,おそらく   (2)-(1) = 25 = a^1000-a^50 = a^50(a^950-1)とやりますが,   これだとaが少数だと人間の手には負えませんし,   教えていただいた精度のaを求める計算手段(「a=***」となる式)は,   私の力では探せませんでした. (2)また,N個になる場合の近似曲線を求める場合は, スマートに計算するには,何らかの方程式に当てはめるのだと思いますが, 指数関数用の近似方程式などはあるのでしょうか?   ちなみに,対数関数(y = log_a(x)+c)の近似方法も知りたいのですが…,   (2個の座標がわかれば,連立方程式でa,cは確定することはわかりました.)   これは欲張りなので,もう少し自分で調べてみます. 長文になってしまい申し訳ありません. わかる範囲だけの回答,短くで結構です. ※なお,適切な方程式/ソフトが無い場合は, 今は特に処理速度に拘っているわけではないので, いっそ自分で総当たりをするプログラムを作って出そうと思っています.

関連するQ&A

  • 近似曲線の設定方法

    Sma4 for Windows で、あるデーターのプロットを取りました。 このプロットに対して、近似(フィッティング)曲線をつくるため x,yの関数としてy=1-(b/1+(c/x))を入れたいのですが、うまくいきません。 bとcはxの変化によって変化する定数の事です。  Sma4起動中の、どこに式を入れればいいのか教えて下さい。  つまり、プロットに対して近似曲線を作るための式の設定方法を教えて下さい。

  • y=A(x-B)/(x-C)についてのカーブフィッティング

    24個のデータ(x,y)について、y=A(x-B)/(x-C)という関数を用いて近似曲線を描いたときのA,B,Cの値を知りたいのですが、どうすればよいのでしょうか?

  • 実験データの指数近似曲線を求めたいのですが・・・

    今,修論の実験データを指数近似したいのですが, [ y=A*exp(Bx)+C ]の形で求めたいのです. EXCELではおそらく定数項Cが求められませんし, 僕が見つけたフリーソフトでは自然対数eが使われていません. こんな都合の良いソフトがあるでしょうか? それともEXCELのマクロ等をいじって実現できるでしょうか? もしご存知の方がいましたら是非教えて下さい!! 宜しくお願いします.

  • エクセル対数近似曲線のX値を代入、Y値の求め方

    初めて質問させていただきます。 エクセル2003で散布図グラフを作成し、対数近似曲線を表示させたところ、以下の方程式が表示されました。 y=2E+06Ln(x)-4E+06 この式にXの値を代入して、Yの値を求めようと思い、X=25, 30, 35, 40・・・を代入してみたところ、Yの値が、対数近似曲線のグラフの位置と一致しないで困っています。 たとえば、X=25を代入して、Y=2*10^6*Ln(25)-4*10^6で計算すると、Y=2,437,742となります。一方、対数近似曲線のX=25のところを見ると、Y=3,000,000ぐらいになっています。 アドバイスを頂けると大変助かります。よろしくお願いいたします。

  • arctan(y/x)でxとyを極座標で表したあとの計算について

    arctan(y/x)という式があり、x,yをそれぞれ極座標で表します。x=rcosθ、y=rsinθ. すると、arctan(rtanθ)となってしまいます。 このように、三角関数の変数部分がまた三角関数というような関数は何と呼ばれているのでしょうか。これが指数関数を用いて表せるようなのですが、どのようにすればよろしいでしょうか。ヒントになるHP等の情報だけでもかまいません。

  • xについての2次関数y=3x^2-9ax+3a^2+3a-1がある。た

    xについての2次関数y=3x^2-9ax+3a^2+3a-1がある。ただし、aは実数の定数である。 すべての実数xに対して-2/3≦yが成り立つのは、ア/イウ≦a≦エ/オのときである。 ア~オを求めたいのですが... まず、全ての実数という条件があるので、判別式D<0で解こうと思ったのですが、 何度やってもルートの中がマイナスになって、答えが出てきません。 解き方が間違っているのでしょうか?

  • エクセルの関数より指数近似式を求める

    エクセルの関数を用いてy=a(1-2e^bx)の近似式から 定数a,bを求めたいのでご教授お願いいたします.

  • y=a^(k/x)の指数関数にて

    kが正のとき 1<aの時右下がりのグラフとなり、 0<a<1の時右上がりのグラフとなるんですか? kは定数。 kが負のとき 1<aの時右上がりのグラフとなり、 0<a<1の時右下がりのグラフとなるんですか? kが0のときには定数関数ですよね。 また定数pを使って y=a^{k/(x±p)}となってもx±p=Xと見れば良いから上記と同じ事がいえますよね。

  • エクセルで、三角関数を含んだ近似曲線を引きたいです

    実験値に対して、三角関数を含んだ近似曲線を引きたいのですが、どのようにすればよいでしょうか? 例えば、 y=a*sin(x)^b+c のような式で、最も実験値に合う係数a,b,cを求めたいです。 よろしくお願いします。

  • 二次関数 y=x2 のグラフ上に、それぞれx座標が-2、4である2点A

    二次関数 y=x2 のグラフ上に、それぞれx座標が-2、4である2点A,Bがあります。また、点Pは、関数 y=x2 のグラフ上の原点Oと点Bの間にあります。 次の問に答えなさい。   (1)直線ABの式を求めなさい。 (2)点Pのx座標が1のとき、△APBの面積を求めなさい。 (3)△APBの面積が△AOBの面積の5/8倍になるとき、点Pのx座標を求めなさい。 (1)はy=2x+8 で分かりました。(2)、(3)の求め方をお願いします。