数値微分
をテンプレートにして作成
home
>
サイトマップ
開始行:
RIGHT:寄稿:東條遼平
* 微分の近似 [#d81fa30a]
積分ができるようになったので微分もできるようにしてみたい...
微分の方法にもいろいろあるようですが、ここでは一番簡単に、
微分の基本式を使って求めてみたいと思います。
かなり単純明快で簡単に実装できますが、その分誤差が大きい...
導関数の定義とは、
#ref(img99.png,nolink)
で表されます。一見王道の様ですが、PCにおいて無限を扱うこ...
当然hは「PCでの小数で表現できる範囲内での出来るだけ小さな...
なのでこの値の設定の仕方で誤差は多少小さくできるものの、...
誤差が出てきたりと無視し難い誤差が発生する場合があります。
厳密に求めたい場合はこの方法は使えませんが、ドンブリ勘定...
結構便利な方法です。
* ソースコード [#ledd67df]
double Derivative(double (*f)(double t), double x, doubl...
{
return ((*f)(x + dx) - (*f)(x))/dx;
}
たったの1行で実装できました。
あまりに単純ですが、どの程度誤差がでるのかいくつか見てみ...
$ ./calculation_samp
x*x :f'(2) 4.000000
exp(x):f'(1) 2.718314
cos(x):f'(PI/2) -1.000000
log(x):f'(2) 0.500000
これを見てみると結構よさそうな結果になっています。
ただし、expに関しては、exp(1)が2.718281・・・
である事を考えると、あまり小さな誤差ではなさそうです。
とは言え、複雑な式の微分係数を求める場合でも有効ですので、
あまり精度が要求されない場合は便利だと思います。
- &ref(main.c);
- &ref(calculation.c);
- &ref(calculation.h);
終了行:
RIGHT:寄稿:東條遼平
* 微分の近似 [#d81fa30a]
積分ができるようになったので微分もできるようにしてみたい...
微分の方法にもいろいろあるようですが、ここでは一番簡単に、
微分の基本式を使って求めてみたいと思います。
かなり単純明快で簡単に実装できますが、その分誤差が大きい...
導関数の定義とは、
#ref(img99.png,nolink)
で表されます。一見王道の様ですが、PCにおいて無限を扱うこ...
当然hは「PCでの小数で表現できる範囲内での出来るだけ小さな...
なのでこの値の設定の仕方で誤差は多少小さくできるものの、...
誤差が出てきたりと無視し難い誤差が発生する場合があります。
厳密に求めたい場合はこの方法は使えませんが、ドンブリ勘定...
結構便利な方法です。
* ソースコード [#ledd67df]
double Derivative(double (*f)(double t), double x, doubl...
{
return ((*f)(x + dx) - (*f)(x))/dx;
}
たったの1行で実装できました。
あまりに単純ですが、どの程度誤差がでるのかいくつか見てみ...
$ ./calculation_samp
x*x :f'(2) 4.000000
exp(x):f'(1) 2.718314
cos(x):f'(PI/2) -1.000000
log(x):f'(2) 0.500000
これを見てみると結構よさそうな結果になっています。
ただし、expに関しては、exp(1)が2.718281・・・
である事を考えると、あまり小さな誤差ではなさそうです。
とは言え、複雑な式の微分係数を求める場合でも有効ですので、
あまり精度が要求されない場合は便利だと思います。
- &ref(main.c);
- &ref(calculation.c);
- &ref(calculation.h);
ページ名:
home
>
Modified by
物理のかぎプロジェクト
PukiWiki 1.4.5_1
Copyright © 2001-2005
PukiWiki Developers Team
. License is
GPL
.
Based on "PukiWiki" 1.3 by
yu-ji
Powered by PHP 5.3.29HTML convert time to 0.002 sec.