| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 20514 人关注过本帖
标题:c经典900例
只看楼主 加入收藏
leexianjun
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-6-12
收藏
得分:0 
谢谢楼主了,好东西!!

生活就像一杯茶,越品越香;烦恼就像茶叶,滋润生活!
2005-09-26 13:20
likk
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2005-9-15
收藏
得分:0 
i can't understand hou to use this program!!!
please help me !!can you write down it here??
2005-09-27 13:13
likk
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2005-9-15
收藏
得分:0 
这个程序怎么用!!!!!
??????
2005-09-27 13:14
likk
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2005-9-15
收藏
得分:0 
我是超级新手!!!!!!!11
大家帮帮忙!!!!!!!!1
教教我
2005-09-27 13:49
细品咖啡
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-9-27
收藏
得分:0 

朋友,能帮个忙吗?我们要写一个程序,可是我连题都看不懂,能帮我做一下吗?有重谢。

603 Newton插值功能

给出n个节点及相应的函数值x1,x2,,xn;y1,y2,,yn,

对m个插值节点xj,j=1,2,,m,用Newton插值多项式进行成组

插值.

一.算法简介

对已知n个节点及相应处函数值yi=f(xi),I=1,2,,n,构

造不超过n-1次的插值多项式Φn-I(x),近似代替f(x).

当n=3时,就是构造不超过二次的插值多项式

Φ2(x)=A1+A2(x-x1)+A3(x-x1)(x-x2) (6-5)

由插值条件T2(x1)=f(x1)=y,得A1=y1.再利用插值条件

T2(x2)=y2,可得:

A2=[f(x2)-f(x1)]/(x2-x1)=f(x2,x1) (6-6)

(6-6)右端f(x2,x1)是个记号,称为函数f(x)在x1,x2的一阶

差商,或一阶均差,再利用T2(x3)=y3,可得

A3=[f(x2)-f(x1)]/[(x3-x1)(x3-x2)]

-[(x3-x1)f(x2,x1)]/[(x3-x1)(x3-x2)]

=[f(x3,x1)-f(x1,x2)]/(x3-x1)=f(x1,x2,x3) (6-7)

(6-7)右端f(x1,x2,x3)是个记号,称为函数f(x)在x1,x2,x3

的二阶差商或二阶均差,它是一阶均差的均差,将A1,A2,A3代入

(6-5)即得Newton二次插值多项式.

当n>3时,我们进行推广,假定已有n-2阶差商,可递归地定

义n-1阶差商f(x1,x2,,xn)=

[f(x1,x2,,xn-1)-f(x1,x2,,xn)]/(x1-xn)

由此可写出n-1阶Newton插值多项式

Φn-1=f(x1)+(x-x1)f(x1,x2)+(x-x1)(x-x2)f(x1,x2,x3)+

(x-x1)(x-xn-1)f(x1,x2,,xn) (6-8)

用Φn-1(x)近似代替f(x),其误差如下:

设f(x)∈C^n-1[a,b],f^n(x)在[a,b]上存在,其中[a,b]是

包含x1,x2,,xn在内的任意区间,则对任意给定的x∈[a,b]总

存在一点C∈(a,b)且与x有关,使

Rn-1(x)=f(x)-Tn-1(x)=f^n(C)*W(x)/n! (6-9)

其中W(x)=(x-x1)(x-x2)(x-xn).该误差公式应用起来有一定

困难,因为实际上f(x)往往不知道.可用时候估计去估计误差.

二.程序使用说明

1. 输入参数

n 节点个数

m 插值点个数

X(N),Y(N),一维实数组,分别存放节点及节点处的函数值

C(M) 一维实数组,存放插值点的值

数据排列顺序:x(n),y(n),c(m),分别存放在主程序250-270中

2. 输出参数

n,m分别为节点个数,插值点个数

X(N),Y(N),一维实数组,分别存放节点及节点处的函数值

C(M),D(M),一维实数组,分别存放插值点及值

当运行程序后,输入:

6 7

1.0000 2.0000 3.0000 4.0000 5.0000 6.0000

8.0000 27.0000 64.0000 125.0000 216.0000 343.0000

0 1.5 2.5 3.5 4.5 5.5 7

则运行结果为:

x=0.0000000000e+00 y=1.0000000000e+00

x=1.5000000000e+00 y=1.5625000000e+01

x=2.5000000000e+00 y=4.2875000000e+01

x=3.5000000000e+00 y=9.1125000000e+01

x=4.5000000000e+00 y=1.6637500000e+02

x=5.5000000000e+00 y=2.7462500000e+02

x=7.0000000000e+00 y=5.1200000000e+02

basic源程序:

10 '**************

20 '603 Newton *

30 '**************

40 INPUT "n,m=";N,M

50 PRINT;TAB(3);"n=";N,"m=";M

60 DIM X(60),Y(60),C(M),D(M)

70 PRINT TAB(3);

80 FOR I=1 TO N

90 READ X(I):PRINT USING" ###.####";X(I);

100 NEXT I

110 PRINT

120 FOR I=1 TO N

130 READ Y(I):PRINT USING" ###.####";Y(I);

140 NEXT I

150 PRINT

160 FOR J=1 TO M

170 READ C(J)

180 NEXT J

190 PRINT

200 GOSUB 400

210 PRINT TAB(3);

220 FOR J=1 TO M

230 PRINT "X=";C(J),"Y=";D(J)

240 NEXT J

250 DATA 1,2,3,4,5,6

260 DATA 8,27,64,125,216,343

270 DATA 0,1.5,2.5,3.5,4.5,5.5,7

280 END

400 '子程序

410 FOR L=2 TO N

420 FOR I=N TO L STEP-1

430 Y(I)=(Y(I-1)-Y(I))/(X(I-L+1)-X(I))

440 NEXT I

450 NEXT L

460 FOR J=1 TO M

470 D(J)=0

480 FOR I=1 TO N

490 S=1

500 IF I=1 THEN 540

510 FOR L=1 TO I-1

520 S=S*(C(J)-X(L))

530 NEXT L

540 D(J)=D(J)+S*Y(I)

550 NEXT I

560 NEXT J

570 RETURN

2005-09-27 20:40
新用户
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2005-9-11
收藏
得分:0 

收到,谢谢

2005-11-02 23:21
小嘟嘟
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-11-3
收藏
得分:0 
太大了,打不开啊,帮忙
2005-11-03 10:13
xiaxia421
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2005-10-15
收藏
得分:0 
还是先把数据结构学好再说!

[fts=3][M][ftc=#F16C4D]ぃ~~è前方是绝路,希望在转角è~~ぃ[/ft][/M][/ft]
2005-11-03 10:33
zhaolong
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-11-2
收藏
得分:0 
谢谢!!
2005-11-03 13:52
alua
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-11-3
收藏
得分:0 
應該頂的!
2005-11-03 15:56
快速回复:c经典900例
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013748 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved