プロフィール

kazutabakun

Author:kazutabakun
好奇心旺盛でいろいろなことに興味を持つタイプ。

最新記事
Amazon
時計
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
FC2ブログランキング
気に入ったら下記をクリックしてください。

FC2Blog Ranking

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

EXCELで遊ぼ(3): EXCELで真っ正直に二次方程式の解を計算すれば....?

EXCELはなかなか便利なアプリケーションで、条件をうまく設定すると科学計算等にも使用できますが、数値が極大、極小を取り扱うと悲鳴を上げる場合があります。今回はそのようなケースがおこるのかどうか試す事にしました。題材は二次方程式の解。

中学のときに学習するのが例の一変数の二次方程式の解を求める式、根の公式というのがありますね。結構基本ですが、複素数の概念等を説明する道具としても使われていてあまり好かれていないと思われます。

ちょっとおさらいの為に書いてみると、
数式3

この方程式を満足する解は2個あってそれは、

数式2

ただし、数式1 であること。

昔からこの但し書きが気になっていました。この定数aがゼロになるとそもそも上記の式は二次方程式とは言えなくなるしゼロで割り算をするというのも数学では禁止事項なので当然ですが、学校ではあえてそのような末子に言及しません。しかし、この定数aが限りなくゼロに近づくとこの根の公式はaがゼロである一次方程式と当然答えと一緒になるはずである等という理屈が湧き起こりました。

数式4

つまり根の公式のaを限りなくゼロにした場合を計算して確認してみたいと思いました。その場合の応えは一つで-c/bになるということ。

つまり
数式5

実はこの関係式はxが1にたいして無視できるぐらい小さいと下記のような近似が成り立つことを利用して計算で求めることができます。
数式6

数式7

さて二次方程式では解が二つあるのですが、これがどうなるかというと

数式8

二つの解のうちbがプラスの場合、X1はマイナスの無限大になり、bがマイナスの場合はプラスの無限大になります。もう一方の解X2が一次方程式の解になります。

さて前置きが長くなりましたが、上記のような近似式を使わずに根の公式をエクセルでまじめに計算して定数aを限りなくゼロに近づけると果たして計算結果はどうなるのか?試してみた結果を報告します。

下記のような二次方程式を想定して話を進めます。

数式9

ここでは、定数aを1、0.5、0にした場合をかんがえます。この式のグラフを描くとそのグラフとx軸の交点が該当する方程式の解になる事は理解できると思います。

表1 上記の計算値
表1
図1 表1のデータをグラフにしたもの
図1

上記グラフで分かるように、解の小さい方はどんどんマイナスの方向に遠ざかっています。a=0の直線になったときはマイナスの無限の彼方にいると言っていいでしょう。大きい解の値は2.5日に近づいています。

EXCELでb=2、c=-5と固定してaを0に近づけると計算値は、予測される-c/b=5/2=2.5に近づく事が分かります。表2では根の公式で算出した値を方程式に代入し、答えが0になる事を確認しました。

表2 根の公式の答えとその答えを代入した方程式の値。
表2
図2 表2のグラフ
図2
しかしaの値が0.005にしたときに方程式に値を代入した結果が微妙にゼロから外れました。この様子をaの値を更にゼロに近づけた計算で調べてみました。

表3 さらに微小部分を計算したデータ
表3
図3 表3のグラフ
図3

aの値が12乗分の一ほど小さくなるとさすがに方程式の答えはほとんど2.5(よく見るとあり得ない2.5以上!?)になりますが、肝心の方程式の答えがゼロから外れていきます。18乗分の一(18桁の正確さ)だとEXCELが狂いだして『もう知らない』というお手上げ状態になりますね。これはやはりごく小値で割り算をしているので誤差が無視できず値が狂っていったと思われます。

まあEXCELでこのような天の邪鬼的な計算をする人もいないでしょうから通常では全く気にならない事柄ですが、やはりコンピュータは有限の値を計算しているのでオーバーフローのような現象がこのように出るケースもあるという事でした。計算式は比較的簡単に入力できますが、その結果は思いもよらない物になる事を頭に入れておいた方がいいかもしれません。
スポンサーサイト

Comment

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。