[[数理情報工学演習第二A]] レポートの対策をするページです。実験でみんなが大変そうなので、ヒントをあげておきます。 少なくともtakoは、cygwin上のgccで動作を確認しています。 -課題1 --floatをとり、floatを返す関数をかけば、「精度がfloatに落ちてくれない」問題を回避できます。例: float t200(float t){ return t*200; } -課題2 --λがn重根のとき、n*λ^(n-1)という形の項があらわれる、と、軽くふれましたよね。 -課題3 --これくらいなら、手で、根を求められるのでは。 -課題4 --課題4には、http://www.zusaku.com/suugaku4.htmlが便利です。 -課題5 --求めるだけなら、すぐに終了です。t[i+2]=2*x*t[i+1] - t[i]; -課題6 --意見募集 -課題7 --doubleでやっても30で値がおかしくなっていると思います。 -課題8 --注目すべきはどこでしょう。 -課題9 --C言語では、float.hにFLT_EPSILON,DBL_EPSILON,LDBL_EPSILONが定義されています。Mが大きい場合あふれると書いてあるので、doubleもしくはlong doubleで計算すればいいでしょう。 f[m]=0; //f[m-1]=LDBL_EPSILON; //f[m-1]=DBL_EPSILON; //f[m-1]=FLT_EPSILON; f[m-1]=LDBL_EPSILON; 等として、f[i]=2*(i+1)*f[i+1] /10.0L -f[i+2];とループ…あとはいいですよね。 -- C++なら<limits>にあるstd::numeric_limits<double>::epsilon()とかで。 -課題10 --octaveというmatlabとよく似た機能を持つソフトにa\bという形でとかせてみたのですが、行列のサイズが45から46になったときに挙動がおかしくなりました。 --octaveというmatlabとよく似た機能を持つソフトにa\bという形でとかせてみたのですが、行列のサイズが45から46になったときに挙動がおかしくなりました。~ inv(a)*b とすれば、きちんとできるようです。