PowerPoint プレゼンテーション

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|
※上記は例です。プログラムと異なる場合は、
それに合わせて必ず修正すること。