PADのテンプレート 処理、連接 x0 ← x { x0 = x; x = x0+u(x0); err= fabs(x-x0); x ← x0+ u(x0) } err ← |x - x0| 判断(選択) x2 ← x3 if (f(x3) > 0) x2 = x3; else x1 = x3; f (x3) > 0 x1 ← x3 前判定反復 a≦0 エラーメッセージ出力 a の入力 while (a <= 0) { printf("input error\n"); printf("a = "); scanf("%lf", &a); } 後判定反復 (repeat ~ until) x0 ← x err < e x ← 0.5(x0+ a/x0) err ← |x - x0| do { x0 = x; x = 0.5*(x0+a/x0); err= fabs(x-x0); } while (err >= eps); repeat ~ until と do ~ while は 条件が逆 問題向き反復 i = 1,...,N s ← s + xi y i for (i=1;i<=N;i++) { s += x[i]*y[i]; } 定義 二分法 … = … 0 を返す int bisection() { ... ; ... ; return 0; } 引用(参照) 入力 { scanf("%lf%lf",&x1,&x2); x = bisection(x1,x2); printf("x = %g\n",x); 二分法 } 結果の出力 x1←1, x2 ←2 二分法 = err < eps (x1+x2)/2 を出力 x3 ← (x1+x2)/2 x2 ← x3 f (x3) > 0 x1 ← x3 err ← x2 - x1 x を入力 ニュートン法 = err < eps(|x0|+|x|) x を出力 x0 ← x x ← x0- f(x0)/f ’(x0) err ← |x - x0| a, b, n を与える h ← (b - a) / n 台形公式 = s ← ( f(a) + f(b) ) / 2 i = 1, ..., n - 1 s ← s + f(a + ih) s ←hs a, b, n を与える h ← (b - a) / 2n s1 ← f(a) + f(b); s2 ← 0; s4 ← 0 シンプソンの公式 = i = 1, ..., n - 1 s2 ← s2 + f(a + 2ih) s4 ← s4 + f(a + (2i - 1)h) s4 ← s4 + f(a + (2n - 1)h) s ← (h / 3) (s1 + 2s2 + 4s4)
© Copyright 2024 ExpyDoc