《计算方法》实验报告

  • 格式:docx
  • 大小:378.99 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《计算方法》实验报告 学号

姓名 班级

实验项目名称

计算方法实验 一、实验名称 实验一 插值与拟合

二、实验目的:

(1)明确插值多项式和分段插值多项式各自的优缺点;

(2)编程实现拉格朗日插值算法,分析实验结果体会高次插值产生的龙格现象;

(3)运用牛顿插值方法解决数学问题。

三、实验内容及要求

(1) 对于55,11)(2≤≤-+=x x

x f 要求选取11个等距插值节点,分别采用拉格朗日插值和分段线性插值,计算x 为0.5, 4.5处的函数值并将结果与精确值进行比较。

输入:区间长度,n(即n+1个节点),预测点

输出:预测点的近似函数值,精确值,及误差

(2)已知,,,392411===用牛顿插值公式求5的近似值。

输入:数据点集,预测点。

输出:预测点的近似函数值

四、实验原理及算法描述

算法基本原理:

(1)拉格朗日插值法

(2)牛顿插值法

算法流程

五、程序代码及实验结果

(1)输出:

A.拉格朗日插值法

B.分段线性插值

X y(精确) y(拉格朗日) y(分段线性) 误差(拉) 误差(分)

0.500000 0.800000 0.843407 0.750000 -0.054259 0.050000

4.500000 0.047059 1.578720 0.0486425 -32.547674 -0.033649

(2)输出:

X y(精确) y(牛顿插值) 误差(牛顿插值)

5.00000 2.236068 2.266670 -0.013686

源码:

(1)A.拉格朗日插值法

#include

#include

#include

using namespace std;

double Lagrange(int N,vector&X,vector&Y,double x); int main(){

double p,b,c;

char a='n';

do{

cout<<"请输入差值次数n的值:"<

int N;

cin>>N;

vectorX(N,0);

vectorY(N,0);

cout<<"请输入区间长度(a,b):"<

cin>>p;

cin>>b;

c=b-p;

c=c/(N-1);

for(int i=0;i

X[i]=p;

Y[i]=1/(1+p*p);

p=p+c;

}

cout<<"请输入要求值x的值:"<

double x;

cin>>x;