• ベストアンサー

二次方程式をエクセルで計算するためには

f(x)=ax^2+bx+c とおいて、 f(1000000)=300000 f(4000000)=800000 f(5000000)=1000000 f(10000000)=2000000 となるa,b,cを求めたいのですが、エクセルで簡単に計算して、グラフ化するためにはどうすれば良いか教えて頂けないでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

f(1000000)=300000 f(4000000)=800000 f(5000000)=1000000 f(10000000)=2000000 >となるa,b,cを求めたいのですが 当然ですが、例にある4つ条件を満たすa,b,cの解は存在しませんよね。 エクセルのグラフには、近似曲線を自動で作成する機能があります。 一例ですが シートに  X   Y 10    3 40    8 50   10 100   20 ・・・・ とデータを並べて、折れ線グラフを作成します。 作成した折れ線グラフを右クリック=>近似曲線の追加 多項式近似 次数 2 を選択 グラフに数式を表示 にチェックを入れてOKすれば 近似曲線とa,b,cが入った数式が表示されます。

jiroshinkun
質問者

補足

なるほど こういうやり方もあるのですね 全然知りませんでした。 四つの条件を満たすabcは無いのはその通りです。 すみません。 もう少し単純に f(x)=ax^2+bx+c とおいて、 f(4000000)=800000 f(5000000)=1000000 f(10000000)=2000000 を簡単にエクセルで解くようにすることは出来ないでしょうか?

その他の回答 (4)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.5

散布図のグラフを作って、2次の多項式近似曲線を表示させればいいでしょう。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

関数で正確な係数を取得するならLINEST関数を使うことになります。 元データが先の添付画像のようにX値がB5:D5,Yの値がB6:D6セルに入力されているなら以下の式を入力して下方向にオートフィルすれば、正確なa,b,cの値(近似曲線の表示桁数を多くした場合と同じ数値)が取得できます。 =INDEX(LINEST($B$6:$D$6,$B$5:$D$5^{1;2},),,ROW(A1))

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

ソルバーを使って係数を求める場合は、以下のような設定をします。 D2セルに、各数式のY値との差の2乗を加算した以下の数式を入力します。 =(B1*B5^2+B2*B5+B3-B6)^2+(B1*C5^2+B2*C5+B3-C6)^2+(B1*D5^2+B2*D5+B3-D6)^2 データ(2003以前なら「データ」)、ソルバーをクリックし、目的セルをD2、目標値を「最小値」にして、変化させるセルをB1:B3にして「実行」します。 この結果を見ると、近似曲線から求めた係数よりも誤差が大きいですが、小数点2桁目までは同じなので、使用目的によって使い分けると良いと思います。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

3点の場合は近似曲線でも正確に1つに規定できますので、「近似」ではなく実際に3点を通る曲線を得ることができます。 ちなみに近似曲線を作成するときは、「散布図」を使い、2次の近似曲線を追加し、近似曲線上で右クリックし「近似曲線の書式設定」から表示形式を「数値」にして小数点以下の桁数を例えば10桁にしてください。 添付画像はこのようにして得られたa,b,cの値を「=$B$1*B5^2+$B$2*B5+$B$3-B6」の数式で各x値の実際の値を代入した式とYの値の差を見るために参考までに計算させてみました(10のマイナス8乗以下の誤差ですね)。 このa,b,cの値をエクセルの別の機能で計算したい場合には、ソルバーの機能を利用することになります。

関連するQ&A