dポイントプレゼントキャンペーン実施中!

C言語です。

exp(x)のテイラー展開を数値計算で求めるプログラムですが、

プログラムでは相対打ち切り誤差をEPSと定義しています。

具体的には

double myexp(double x){

double EPS=1e-08;
double s=1.0,e=1.0,d;
int k;
for(k=1;k<=200;k++){
d=s;
e=e*x/k;
s=s+e;
if(fabs(s-d)<EPS*fabs(d))
return s;

}

と上の様に書かれています。

わからない点は上記のプログラムでEPS=1e-08のeは10の意味をしているでしょうか?EPS=10^-8理解
してよろしいでしょうか?
またEPSのeと二つ目のe=1.0は全く異なるものでしょうか。

ご教授よろしくお願いします。

A 回答 (2件)

http://c-production.com/contents/c/sec02.html

>EPS=1e-08のeは10の意味をしているでしょうか
そうです。厳密には 1*(10^-8)ですね。

>またEPSのeと二つ目のe=1.0は全く異なるものでしょうか。
そうです。EPSのeは指数表記のためのe、2つ目のeは変数名としてのeです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
すっきりです

お礼日時:2013/01/25 19:54

Cは少し忘れ気味ですが、「定数」の後ろについてるEは10のべき乗を表しています。


エクセルとかでも指数表記すればそうなりますし、fortranやC#等でも同じ表記をします。
二つ目のeは自ら定義した「変数」、eで意味が異なります。
    • good
    • 1
この回答へのお礼

ありがとうございます。

すっきりしました

お礼日時:2013/01/25 19:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!