实验三 - - 插值与数值积分

更新时间:2023-10-14 03:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验三 插值和数值积分数值方法

一、实验内容:

1. 已知函数在下列各点的值为:

xi f(xi) 0.2 0.98 0.4 0.92 0.6 0.81 0.8 0.64 1.0 0.38 (1) 用4次牛顿插值多项式P4(x)对数据进行插值,写出计算过程;(手写) (2) 用求出的插值多项式P4(x)计算f(x)在节点xi?0.2?0.08i,处函数值的近似值;(手写)

(3) 编写程序,上机计算,求出数值结果;(可打印)

(4) 画出插值多项式P4(x)的图形,并描出点(xi,f(xi)),(i?10,)1,打印)

2. 计算

。(可

(i?0,1,10,11)?91xdx

(1)分别用梯形公式、Simpson公式,Cotes公式和两点Gauss型求积公式计算近似值;

(手写)

(2)分别取步长h?0.2和h?0.1,用复化梯形公式编程计算积分的近似值T1和T2;

(可打印)

(3)取步长h?0.2,用复化Simpson公式编程计算积分的近似值S1;(可打印) (4)对上述数值结果进行分析。(手写) 二、 实验报告格式

1. 题目(手写);

2. 数值方法和相应的理论分析(手写); 3. 程序(打印); 4. 数值实验结果(打印); 5. 数值实验结果分析(手写)。 三、 实验报告要求

理论分析正确,程序运行无误。实验报告条理清晰,手写部分字迹工整整洁。

牛顿插值代码:

function f = Newton(x,y,x0) syms t;

if(length(x) == length(y)) n = length(x); c(1:n) = 0.0; else

disp('x和y的维数不相等!'); return; End

f = y(1); y1 = 0; l = 1;

for(i=1:n-1)

for(j=i+1:n)

y1(j) = (y(j)-y(i))/(x(j)-x(i));

end

c(i) = y1(i+1); l = l*(t-x(i)); f = f + c(i)*l; simplify(f); y = y1;

if(i==n-1)

if(nargin == 3)

f = subs(f,'t',x0); else

f = collect(f); % f = vpa(f, 6); end

end end 插值图形|

将插值多项式展开

复化的梯形求积公式代码:

function s=fhtxgs(h)

%原式在区间[1,9]上几分的近似结果 s %步长 h

n=(9-1)/h; %区间划分为n等份 s=0;

for i=1:1:n x(1)=1.0;

x(i+1)=x(1)+i*h;

s=s+(sqrt(x(i))+sqrt(x(i+1)))*(h/2); %核心迭代公式 end

运行结果:h=0.2时 s=17.3322; h=0.1时 s=17.3331;

复化的Simpson求积公式代码:

function T=fhsimgs(h)

%原式在区间[1,9]上几分的近似结果 s %步长 h

n=(9-1)/h; %区间划分为n等份 s=0;

for i=1:1:n

x(1)=1.0;

x(i+1)=x(1)+i*h;

s=s+(4*sqrt(x(i))+2*sqrt(x(i)+(h/2))); %核心迭代公式 end

T=(h/6)*(4+s);

运行结果:h=0.2时 s=17.3328;

本文来源:https://www.bwwdw.com/article/o61f.html

Top