- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算方法实验3(Computational method experiment 3)
计算方法实验3(Computational method experiment 3)
拉格朗日插值法
# include stdio.h
Void main ()
{
The double L (double x);
Double a, X;
Scanf (% lf, x);
A = l (x);
Printf (% F,);
}
The double L (double x)
{double the [5] = {0.4,0.5,0.6,0.7,0.8};
Double B [5] = {- 0.916291, 0.693147, 0.510826, 0.356675, -0.223144};
Double n = 0, l, k = 1, s = 1;
Int w I;
For (I = 0; I = 4; I + +)
{
For (w = 0, w = 4; W + +)
{
If (w = = I)
Continue;
K = k * (x - [w]);
S = s * (a [i] - [w]);
}
L = K / s * B [i];
S = 1;
K = 1;
N = n + L;
}
The return (n);
}
牛顿法
# include stdio.h
# include stdlib.h
# include iostream.h
Typedef struct date
{
Float X;
Float y;
} / / 变量x和函数值y的结构 date;
Date d [20]; / / 最多二十组数据
Float f (int s, int t) / / 牛顿插值法, 用以返回插商
{
If (t = = S + 1)
The return (d [t].Y - D [S].Y) / (d [t].X - D [S].X);
Else
The return (f (s + 1, t) - f (s, t) - 1) / (d [t].X - D [S].X);
}
Newton (float x, float, int count)
{
Int n;
While (1)
{
Cout 请输入n值 (即n次插值):; / / 获得插值次数
CIN n;
If (n = count - 1) / / 插值次数不得大于count-1次
Break;
Else
System (CLS);
}
/ / 初始化t, y, YT.
Float t = 1.0;
Float y = D [0].Y;
Float YT = 0.0;
/ / 计算y值
For (int j = 1; J = n; j + +)
{
T = (x - D [J-1].X) * t;
YT = f (0, J * t;
/ / cout f (0, J) endl;
Y = y + YT;
}
Return y;
}
Lagrange (float x, float, int count)
{
Float y = 0.0;
For (int k = 0; K count; K + +) / / 这儿默认为count-1次插值
{
Float P = 1.0; / / 初始化p
For (int j = 0, J count; j + +)
{/ / 计算p的值
If (k = J) continue; / / 判断是否为同一个数
P = P * (x - D [J].X) / (d [k].X - D [J].X);
}
Y = y + p * d [k].Y; / / 求和
}
Return y; / / 返回y的值
}
Void main ()
{
Float x, y;
Int count;
While (1)
{
Cout 请输入x [i], y [i] 的组数, 不得超过20组:; / / 要求用户输入数据组数
CIN count;
If (count = 20)
Break; / / 检查输入的是否合法
System (CLS);
}
/ / 获得各组数据
For (int i = 0; I count; I + +)
{
Cout 请输入第 I + 1 组x的值:;
CIN d [i].X;
Cout 请输入第 I + 1 组y的值:;
CIN d [i].Y;
System (CLS);
}
Cout 请输入x的值:; / / 获得变量x的值
CIN x;
While (1)
{
Int choice = 3;
Cout 请您选择使用哪种插值法计算: endl;
Cout (0): 退出 endl;
Cou
您可能关注的文档
- 七年级下册语文题第二单元(Grade seven Chinese second unit).doc
- 七年级语文上册 第1课《为你打开一扇门》同步练习 苏教版(Grade seven Chinese census first class open a door for you synchronous exercises Jiangsu).doc
- 七年级语文上册 第三单元同步练习 语文版(Grade seven Chinese census of third synchronized exercises Chinese version).doc
- 七年级语文上册 第六单元检测卷(一) 人教新课标版(Grade seven Chinese census unit sixth detection volume (a) taught the new curriculum version).doc
- 万古汇力以先锋姿态企业培训专注ehr(The power to pioneer attitude training focus on EHR).doc
- 万斯同《明史稿》(Wan Sitong Ming history).doc
- 万用表检测元器件(Multimeter to detect components).doc
- 七年级语文上册《帮你学作文》第六单元试题(无答案)人教新课标版(Grade seven Chinese census to help you learn the composition sixth unit test (no answer) taught the new curriculum version).doc
- 万峰经典语录升级版(Wan Feng classic quotations upgraded version).doc
- 万科企业股份有限公司(Vanke enterprise Limited by Share Ltd).doc
文档评论(0)