それ、メッセージ花火でわざわざ伝えること?

現在、exp(x)の値をマクローリン展開を用いて第20項まで求める課題をやっているのですが、何をどうすればいいか全くわかりません。ちなみに問題ではMaclaurinExp()という関数を使えと言われています。プログラムのソースを書いていただけるとありがたいです。どなたかお助けおねがいします。

質問者からの補足コメント

  • うーん・・・

    コメントにありましたので補足させていただきます。
    MaclaurinExp()は確認したところ、プロトタイプ宣言時に用いる関数のようです。(課題を考えた人が勝手に名付けたとおもいます。)

    #include<stdio.h>
    int MaclaurinExp(); <----------この部分のことです。

    int main(void)
    {
    ....
    }
    この説明に不備があればコメントお願いします。

      補足日時:2016/12/12 21:11
  • ちなみにc言語です。

      補足日時:2016/12/12 21:12
  • どう思う?

    上記のプログラムソースは間違いでした。
    質問の仕方がわかりづらかったので修正します。
    「プロトタイプ宣言をして上記の課題を解くにはどうすればいいですか?」

      補足日時:2016/12/12 23:49

A 回答 (3件)

expのマクローリン展開は先頭20項なら



exp(x)=1/0! + (1/1!)x + (1/2!)x^2 + ・・・(1/19!)x^19

をcに直すだけです。そのままー行に無理やりかいてもよいし
ループで書いてもよいでしょう。

注意点は x<0の場合、交代級数になり、桁落ちで精度が
激減するので

1/exp(-x)

を使うこと。

で、内容に何の説明も無いのに MaclaurinExp 使って
プログラム書くのは不可能です。なんですかこれ?
    • good
    • 0

もっとわかりません。


関数プロトタイプ宣言というのは外部参照・前方参照する関数の引数と返り値の型をまえもって宣言しておくことです。引数や返り値がない場合は void と書くのが決まりです。
int MaclaurinExp();
では、返り値がアキュムレーターサイズの整数であることしか判りません。
マクローリン展開というからには実数値が出てくる筈なのに整数ということは一桁ずつ返してくるのでしょうか?
関数の仕様が分からないと使えません。
    • good
    • 0
この回答へのお礼

返信ありがとうございます。プログラム内容をもう少し詳しく書いてみます。

お礼日時:2016/12/12 23:34

一体何の言語ですか?


MaclaurinExp() なんて関数は聞いたこともないし、ググっても当たらない。もうちょっと情報が欲しいです。

ちなみに C 言語だったら...

double exp(double x)
{
double e = 0;
for(double d = 22.0; d > 0; d -= 1.0)
{
e = x *(e + 1.0)/ d;
}
return e;
}

なんて感じですかね。
    • good
    • 0
この回答へのお礼

返答ありがとうございます。もう少し詳しく書いてみます。

お礼日時:2016/12/12 21:04

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