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)
ダウンロード

ここ(pad)