- ベストアンサー
微分方程式と実際のデータが合致しない?
これは畑違いかもしれませんが(OfficeのVBAにも関係するので)、 下記のようなデータ群があったとします。 X Y 36.73474653 -6.174212305 37.12350563 -5.364835939 37.7137683 -4.915271416 38.33279081 -4.697242469 38.98732842 -4.609384705 39.70069976 -4.619897954 このデータ群を最小2乗法(エクセルの散布図より)で5次式で求めると y = 0.0735x5 - 14.126x4 + 1085.7x3 - 41721x2 + 801538x - 6E+06 という関数表示になります。詳細にグラフをみても数値的にはグラフのライン上に乗っています。 今、このグラフ上でTan(30度)の傾きの位置を求めるために微分方程式 0.3675x4-56.504x3+3257.1x2-83442x+801538=Tan(30degrees) を作成し、これをCasio計算機のサイト http://keisan.casio.jp/ ここの数学公式集の4次方程式 で解くと x1=43.89319235584 x2=33.9107219381 が得られます。 しかし、グラフをよく眺めると傾き30度の位置はこの解では合致して いません。方程式の解が正しいとすると原因として何が考えられるで しょうか。よろしくお願いします。 桁落ちによる誤差でしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
表面的な原因は、あなたの推論どおり、有効桁不足による桁落ちです。 しかし、本質的な原因は別にあります。 例として、整関数では表現しきれない関数を、無理やり整関数で近似すると、このようなことが起きます。 その結果、大局的にはどう見ても、“上に凸の、なめらかな関数”なのに、整関数をあてはめた結果は、xが340付近で変曲点となるような奇妙な挙動をしていますね? もしかすると、その挙動は適切に実現象を表現しているのかも知れません。だとすると、あなたの大局的なグラフの眺め方は適切ではなく、その結果はハズレです。 ところで、関数の係数の有効数字を15桁もとらなければ、挙動が表現しきれないような関数形は、数学的お遊びならいざ知らず、物理的感覚からすれば不適切と言わざるを得ません。 元データの有効桁数が10桁と、異常とも思えるほど多いですね? それには意味があるのでしょうか? もしこのデータと有効数字が、実現象と測定結果なのであれば、あてはめる関数形は、現実の現象を表現する微分方程式の解の特徴をうまくとらえた形に設定しなければ、本質的決着はつきません。 何らかの別の関数形から計算した値であって、元の関数形を推定したいのであれば、いろいろとやってみて、その中で適切なものを選ぶという方法をとられると良いと思います。 データが6組ありますが、5次関数にこだわらず、1次ないし2次落とした関数形で最小自乗近似するのも方法のひとつです。その際、元の有効桁数にこだわっていては”実用的な解”には辿り着きません。 いずれにせよ、ここでの整関数の関数形は、物理的感覚を持ち合わせている人間の目から見たら、異常なほど奇妙に見えるのです。
その他の回答 (2)
- kabaokaba
- ベストアンサー率51% (724/1416)
有効桁数そのものの問題とかはとりあえずおくとしても, >どうもエクセルの散布式は誤差が大きくて精密な計算には向かないようです。 これは昔から指摘されている有名な問題です. 最近だと,三重大学の奥村先生の指摘が スラッシュドットJPで記事になってたりしますが, 他にもいろいろあるようです.
お礼
ありがとうございました。私としてはやはり、係数を求めるまでのエクセルの内部処理で桁落ちなどの狂いが生じているとみました。グラフは正確ですが、表示されている式の係数が狂っているものと思います。
- Tacosan
- ベストアンサー率23% (3656/15482)
その式はどこから出てきたんでしょうか? 私の目には「微分」が見えないんですが....
お礼
どうやら、自分なりに原因がつかめてきました。確信がもてないので識者のアドバイスをお待ちします。 原因:Excel散布図から最小二乗法で式を求める際の係数の精度不足が原因と思います。他のソフトウエア(係数を15桁まで求める)を利用すると的確な解に近づきました。 ちなみ散布図のグラフの係数値は別ソフトによると(近似式ではなく補間式です) F(x)=0.0735098893775491*x^5-14.1261582910761*x^4+1085.73608339368*x^3-41721.3437214525*x^2+801545.411381596*x-6159227.70865582 この式を微分して傾きのデータ補正を行うと x1=39.8339627 x2=37.53152415 と正解に近い解が表示されました。どうもエクセルの散布式は誤差が大きくて精密な計算には向かないようです。
補足
ごめんなさい。文章だけでは通じないので、下記URLをごらんください。 式の由来とグラフなどと、質問事項をまとめてみました。 http://blogs.yahoo.co.jp/catshoes01/18978613.html 改めてご指導をお願いします。
お礼
ご教示ありがとうございました。実は提示したデータは歯車の歯を真横に倒したときの、下半分の根元の曲線のデータを示しています。(トロコイド曲線といいます。データx、yの関係式が単一の式で表せないために、その曲線に接する角度30度の傾きの位置:x座標値 を求める工夫に難儀しています。)最終的には数値計算で求めるにしても一意に記述できる関数形に直さないとならないのです。ラグランジュにしてもニュートンにしても少し形が崩れてしまい、結局エクセルの散布図に戻って、なんとかできないのかと悩んでいます。 なお、トロコイド曲線式からのデータは正確との前提で考えてください。
補足
アドバイスありがとうございました。 結局対策としては、3次スプライン式を区間ごとに接続した形式に して、最初のデータの微分係数(これは真円:歯底円の端部データ)を 入力させることで各区間の微分値を割り出してtan30degreesの接線 が区間に入る2次方程式を抽出する方法で対応したいと思います。 何か良案がありましたら、改めてご提示お願いします。