• ベストアンサー

以下のプログラムを作るとすると・・・・・・?

プログラム作成の勉強をしているのですが、よく分かりません。お分かりの方、ぜひ教えてください。 log(1+x)=Σ_[M,n=1]{(-1)^(n+1)/n}・x^n M=∞ 上の式から有限なMの値とxの値を入力し、Do loopで第M項までの総和によりlog(1+x)の近似値を求め、組み込み関数logYの値と総和による近似解を求めた値の順でディスプレイ上に書き出すプログラムを作成するにはどうしたらよいでしょうか? どうかよろしくお願いします。(使っているツールはxemacsです。)

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

xemacs だと, 例えば print って関数で値を表示したり do ってスペシャルフォームで繰り返しができるので, 例えば (defun foo (M x) (print (log (1+ x))) (do ((n 1) (sum 0)) ((> n M) nil) (setq sum (+ sum (* (/ (expt -1.0 (1+ n)) n) (expt x n)))) (print sum) (incf n 1) ) ) というプログラムでいいはずです. これを *scratch* という名前のバッファ (xemacs を起動すると最初に現れます) に入力すると (最後の閉括弧のあとで C-j) , foo という関数が定義されます. そこで (foo 4 0.3) C-j を入力すると目的のものができるはず.... というのは, きっと答えにならないんだろ~な~.

Hayasumi
質問者

お礼

回答有難うございます。 *scratch*とか使った事のないバッファを使わないといけないのですね。知りませんでした。 もし、別解(*scratch*を使わないような)がありましたら、そちらも教えてはくれないでしょうか? よろしくお願いします。

関連するQ&A