試驗(yàn)
一
目的:
用遞推近似計(jì)算定積分
內(nèi)容:
對(duì)
? n = 0,1,2,…,20?
計(jì)算定積分
????
?
?=?
?
代碼:
算法一:
#include
<
stdio.h
>
#include
<
math.h
>
main()


{

???
int
?n;

???
double
?y[
21
];

y[
0
]
=
log(
6
)
-
log(
5
);

for
(n
=
1
;n
<=
20
;n
++
)

?y[n]
=
(
1.0
/
n)
-
5
*
y[n
-
1
];

printf(
"
Data?is:\n
"
);

??????
for
(n
=
1
;n
<=
20
;n
++
)


??????
{

??????printf(
"
y[
""
%d
""
]:??
"
,n);

??????printf(
"
%f
"
,y[n]);

??????printf(
"
\n
"
);

??????printf(
"
\n
"
);

????}
}
Data is:
y[1]:? 0.088392
y[2]:? 0.058039
y[3]:? 0.043139
y[4]:? 0.034306
y[5]:? 0.028468
y[6]:? 0.024325
y[7]:? 0.021233
y[8]:? 0.018837
y[9]:? 0.016926
y[10]:? 0.015368
y[11]:? 0.014071
y[12]:? 0.012977
y[13]:? 0.012040
y[14]:? 0.011229
y[15]:? 0.010522
y[16]:? 0.009890
y[17]:? 0.009372
y[18]:? 0.008696
y[19]:? 0.009151
y[20]:? 0.004243
算法二:
#include
<
stdio.h
>
#include
<
math.h
>
main()


{

???
int
?n;

???
double
?y[
21
];

y[
20
]
=
(
1
/
2
)
*
(
1
/
105
+
1
/
126
);

for
(n
=
20
;n
>=
0
;n
--
)

?y[n
-
1
]
=
((
1.0
/
n)
-
y[n])
/
5.0
;

printf(
"
Data?is:\n
"
);

??????
for
(n
=
1
;n
<=
20
;n
++
)


??????
{

??????printf(
"
y[%d]:??
"
,n);

??????printf(
"
%f
"
,y[n]);

??????printf(
"
\n
"
);

??????printf(
"
\n
"
);

????}
}
Data is:
y[1]:? 0.088392
y[2]:? 0.058039
y[3]:? 0.043139
y[4]:? 0.034306
y[5]:? 0.028468
y[6]:? 0.024325
y[7]:? 0.021233
y[8]:? 0.018837
y[9]:? 0.016926
y[10]:? 0.015368
y[11]:? 0.014071
y[12]:? 0.012977
y[13]:? 0.012040
y[14]:? 0.011229
y[15]:? 0.010523
y[16]:? 0.009884
y[17]:? 0.009406
y[18]:? 0.008526
y[19]:? 0.010000
y[20]:? 0.000000
分析對(duì)算法的認(rèn)識(shí):
在
Y[20]
之前兩種算法所產(chǎn)生的結(jié)果相差不大。但是由于誤差傳播是逐步擴(kuò)大的。因而不可直接就此斷言那種算法好;隨著次數(shù)的增大其后果是可怕的,代價(jià)是巨大的
。經(jīng)驗(yàn)在下親自驗(yàn)證到
Y[50]
時(shí),會(huì)出現(xiàn)相當(dāng)可怕的結(jié)果!!
算法一:
?
算法二:
?
進(jìn)行誤差分析:
由遞推公式布難求出:算法一的誤差是
5^n
級(jí)別!!
???????????????????
算法二
的誤差級(jí)別則為
(1/5)^n
級(jí)別的!!
綜上所述:在數(shù)值計(jì)算中
如不注意誤差分析,就會(huì)出現(xiàn)“差之毫厘
失之千里”
的錯(cuò)誤結(jié)果。我們應(yīng)重視計(jì)算過(guò)程中的誤差分析,算法分析。
?
posted on 2006-04-04 11:43
華劍緣 閱讀(161)
評(píng)論(0) 編輯 收藏 引用