当前位置:文档之家› 插值与数值积分

插值与数值积分

插值与数值积分
插值与数值积分

《大学数学实验》作业插值与数值积分

班级:

姓名:

学号:

日期:

目录

【实验目的】 (3)

【实验内容】 (3)

【题目1】 (3)

【matlab求解】 (3)

【结果分析1】 (9)

【进一步对比】 (10)

【结果分析2】 (13)

【误差分析】 (14)

【本题总结】 (16)

【题目2】 (16)

【模型建立及求解】 (16)

【结果分析1:三种插值方法的比较】 (21)

【结果分析2:三种积分方法的比较以及理论分析】 (22)

【本题小结】 (23)

【题目3】 (23)

【模型建立及求解】 (24)

【结果分析】 (27)

【本题小结】 (27)

【实验心得、体会】 (28)

注:

本实验作业脚本文件均以ex3_1_2形式命名,其中ex代表作业,3_1_2表示第三章第一题第二小题

自编函数均以exf3_10_1形式命名,exf代表作业函数,3_10_1表示第三章第十题第一个自编函数。特殊函数,如lagr拉格朗日插值函数、simp辛普森函数除外。

【实验目的】

1.掌握用MATLAB计算拉格朗日、分段线性、三次样条三种插值的方法,改变节点的数目,对三种插值结果进行初步分析;

2.掌握用MATLAB及梯形公式、辛普森公式计算数值积分;

3.通过实例学习用插值和数值积分解决实际问题。

【实验内容】

【题目1】(课本习题第三章第1题第(2)小题)

对于函数在个节点上(不要太大,如)用拉格朗

日、分段线性、三次样条三种插值方法,计算个插值点的函数值(要适中,如)。通过数值和图形输出,将三种插值结果与精确值进行比较。适当增加,再作比较,由此作初步分析。

【matlab求解】

先对三种插值方法进行初步比较。对该函数,首先选取n=6,m=81,即选取6个间隔为0.4的节点,并将插值点间隔设为0.025,在MATLAB中分别用三种插值方法计算并作图,程序如下:

%------------------------------作业题ex3_1脚本M文件源程序-------------------------clear;clc;clf;

x0=-1:0.4:1;

y0=(1-x0.^2).^(1/2); % 产生从-1到1的6个节点,间距0.4

x=-1:0.025:1; % 产生81个插值点x,间距0.025;

y=(1-x.^2).^(1/2); % 计算原函数在插值点的取值用于比较

y1=lagr(x0,y0,x); % 计算拉格朗日插值

y2=interp1(x0,y0,x); % 计算分段线性插值

y3=spline(x0,y0,x); % 计算三次样条插值

A=[x;y;y1;y2;y3]' % 输出数值表格结果,y:原函数值;y1:拉格朗日插值结果;y2:分段线性插值结果;y3:三次样条插值结果

subplot(2,2,1),plot(x,y,'k',x,y1,'r'), % 分块作图,为便于对比,原函数用黑色实线,拉格朗日插值曲线用红色实线

xlabel('x')

ylabel('y/y1')

title('拉格朗日插值(n=6,m=81)'), % 加入X轴、Y轴标记和标题

legend('原函数曲线','拉格朗日插值曲线'), % 加入图例

subplot(2,2,2),plot(x,y,'k',x,y2,'g'), % 分块作图,为便于对比,原函数用黑色实线,分段线性插值曲线用绿色实线

xlabel('x')

ylabel('y/y2')

title('分段线性插值(n=6,m=81)'), % 加入X轴、Y轴标记和标题

legend('原函数曲线','分段线性插值曲线'), % 加入图例

subplot(2,2,3),plot(x,y,'k',x,y3,'b'), % 分块作图,为便于对比,原函数用黑色实线,三次样条插值曲线用蓝色实线

xlabel('x')

ylabel('y/y3')

title('三次样条插值(n=6,m=81)'), % 加入X轴、Y轴标记和标题

legend('原函数曲线','三次样条插值曲线'), % 加入图例

subplot(2,2,4),plot(x,y,'k',x,y1,'r',x,y2,'g',x,y3,'b'), % 分块作图,为便于对比,原函数用黑色实线,拉格朗日插值曲线用红色实线, 分段线性插值曲线用绿色实线,三次样条插值曲线用蓝色实线

xlabel('x')

ylabel('y')

title('三种插值曲线(n=6,m=81)'), % 加入X轴、Y轴标记和标题

legend('原函数曲线','三种插值曲线') % 加入图例

%-----------------------作业题3_1拉格朗日插值函数 M文件源程序----------------------function y=lagr(x0,y0,x)

%函数输入:n个节点以数组x0,y0输入,m个插值点以数组x输入

%函数输出:输出数组y为m个插值

n=length(x0); m=length(x);

for i=1:m

z=x(i);

s=0.0;

for k=1:n

p=1.0;

for j=1:n

if j~=k

p=p*(z-x0(j))/(x0(k)-x0(j));

end

end

s=p*y0(k)+s;

end

y(i)=s;

end

得到的结果如下面的表1和图1-图3所示:

表1:三种插值方法的插值结果(n=6,m=81)

图1:拉格朗日插值结果图形(n=6,m=81)

图2:分段线性插值结果图形(n=6,m=81)

图3:三次样条插值结果图形(n=6,m=81)

图4:原函数与三种插值结果图形比较(n=6,m=81)

【结果分析1】

由Matlab计算出来的数据表格和各插值结果曲线图可见,当n=6,m=81时,三种插值方法所得曲线均与原函数曲线吻合得不是很好。其中拉格朗日插值与三次样条插值曲线几乎重合,与原函数靠的更近,且曲线光滑,拟合较好;分段线性插值拟合度较差,在节点处也不光滑。

【进一步对比】

改变节点的个数n,可对三种插值方法作进一步的对比分析。令n从5到11适当增加,分别对三种插值方法的数值和图形输出进行对比和分析。(这里作为示例,分别取n=5,n=8,n=11),得到不同节点个数时三种插值方法的结果如下面的表2和图4-6(为便于比较,将部分表格数据进行合并,并将相同n下的三种插值曲线画在一张图上,同时标出节点):

表2:节点数n取不同值时三种插值方法的插值结果

图4:n=5时三种插值方法的结果比较

图5:n=8时三种插值方法的结果比较

图6:n=11时三种插值方法的结果比较

【结果分析2】

根据对精确值与n=5,8,11时的三种插值方法所得数据表以及图形的比较,

可以得到:

1.(纵向比较)当n由5到11逐渐变大时,3种插值曲线都越来越趋近于原函数曲线。当n较小时,拉格朗日插值曲线、三次样条插值曲线和分段线性插值曲线在节点间与精确值曲线有较大偏差。而当n较大时,这些误差现象都明显变小。当n达到11时,可观察到的误差仅有拉格朗日插值曲线在左右两侧的细微偏离以及分段线性插值曲线在节点处的不光滑成分,3种插值曲线都很好地与原函数曲线相吻合。

2.(横向比较)对于相同的n,可以看到三种插值方法各有优缺点:拉格朗日插值曲线和三次样条插值曲线在节点附近误差很小,曲线也较为光滑,在本实验中拉格朗日曲线并未出现Rung现象;分段线性插值曲线具有良好的收敛性,但在节点处不光滑,在函数比较陡峭时容易出现较大的误差;从直观上看拉格朗日曲线与原函数曲线吻合得最好。

【误差分析】

可以分别从三种插值方法的定义和误差估计式对以上结果作出分析:

〈1〉对于拉格朗日多项式插值,

其中

因此可以求得插值误差(即插值多项式与产生节点的之差)

,

将本题的代入,由于是在给定的有限区间[-2,2]上进行拟合的,故满足

由以上几个式子可以推断出以下几个结论:

①节点n增大时,误差估计式中的分母迅速变小,同时节点间距也变小,

项一般情况下也变小,减小即误差减小;

②越平缓的地方高阶导数越小,误差变小;

③插值点越接近节点处,越小,误差越小。

④对于较小的误差一般较小;而对于较大的,振荡越来越大,

与的误差也会变大,即可能出现龙格现象。

〈2〉对于分段线性插值,

其中

即线性分段插值相当于把每相邻的节点用直线连接起来。因此:

② n越大,分段越多,节点间距越小,分段直线越逼近于原函数曲线;

②由于在每个节点处,分段线性插值函数都是取该点的原函数的值,故

具有很好的收敛性,不会像拉格朗日插值那样可能出现振荡现象;

③由于对于x点的插值,分段线性插值只用到x左右的两个节点,并且用直线直接相连,因此分段线性插值在节点处不光滑。

〈3〉对于三次样条插值,

按照其定义,由于三次样条函数S(x)在每个小区间[]上是三次多项

式,并且在整个取值区间上二阶导数连续,同时满足在节点的取值与原函数的值相同,因此三次样条插值不仅具有良好的收敛性,即在很弱的条件下都能满足

并且曲线十分光滑(二阶导数连续)。相对而言,边界处的

误差比区间中间处的误差要大一些。

将以上分析结果和Matlab用三种插值方法计算出的数据表和图形进行对比,可见,Matlab计算结果和理论分析是一致的。

【本题总结】

(1)三种插值方法中,拉格朗日插值曲线在节点附近误差很小,曲线也较为光滑,本实验中未出现龙格振荡现象;分段线性插值曲线具有良好的收敛性,但在节点处不光滑;而三次样条插值曲线在n较小时也会在端点附近有相对较大的误差,但兼具了收敛和光滑的优点。

(2)当节点数n由小变大时,各种插值方法的误差现象都明显变小,3种插值曲线都越来越趋近于原函数曲线。

【题目2】(课本习题第三章第10题)

下表给出的x,y数据位于机翼断面的轮廓线上,Y1和Y2分别对应轮廓的上下线。假设需要得到x坐标每改变0.1时的y坐标。试完成加工所需数据,画出曲线,求加工断面的面积。

表3:机翼断面轮廓线上的数据

【模型建立及求解】

(1)利用插值法得到加工所需数据,绘出曲线

将机翼断面轮廓的上下线构造为两个函数Y1和Y2,将已有数据作为节点,按要求以0.1为间隔对Y1和Y2进行插值。由于机翼轮廓为光滑外形曲线,因此应该用曲率处处连续的三次样条曲线进行插值。

用MATLAB计算并作图,程序如下:

%-------------------------作业题3_10脚本M文件源程序(插值部分)---------------------- %注:此处将代码写于一个脚本文件中,也可以分别为Y1和Y2的输出编写函数M文件,见第(2)问clear;clc;clf;

x0=[0 3 5 7 9 11 12 13 14 15]; % 输入机翼断面横坐标数据x

Y1=[0 1.8 2.2 2.7 3.0 3.1 2.9 2.5 2.0 1.6]; % 输入机翼断面上线纵坐标数据y1

Y2=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6]; % 输入机翼断面下线纵坐标数据y2

x=0:0.1:15; % 按要求以0.1为间隔设定插值点

y1spline=spline(x0,Y1,x);

y2spline=spline(x0,Y2,x);

A=[x' y1spline' y2spline'] % 列出机翼断面加工数据(三次样条插值法)plot(x,y1spline,'r',x,y2spline,'b'), % 作出机翼断面轮廓线(三次样条插值法)xlabel('x')

ylabel('y1/y2')

title('机翼断面轮廓线图(三次样条插值法)'), % 加入X轴、Y轴标记和标题

legend('Y1:机翼上线','Y2:机翼下线'), % 加入图例

gtext('Y1'),gtext('Y2')

pause,

y1lagr=lagr(x0,Y1,x);

y2lagr=lagr(x0,Y2,x); % 列出机翼断面加工数据(拉格朗日插值法)y1interp=interp1(x0,Y1,x);

y2interp=interp1(x0,Y2,x); % 列出机翼断面加工数据(分段线性插值法)subplot(2,1,1),plot(x,y1lagr,'r',x,y2lagr,'b'), % 作出机翼断面轮廓线(拉格朗日插值,用作对比)

xlabel('x')

ylabel('y1/y2')

title('机翼断面轮廓线图(拉格朗日插值,用作对比)'), % 加入X轴、Y轴标记和标题

legend('Y1:机翼上线','Y2:机翼下线'), % 加入图例

gtext('Y1'),gtext('Y2')

pause,

subplot(2,1,2),plot(x,y1interp,'r',x,y2interp,'b'), % 作出机翼断面轮廓线(分段线性插值,用作对比)

xlabel('x')

ylabel('y1/y2')

title('机翼断面轮廓线图(分段线性插值,用作对比)'), % 加入X轴、Y轴标记和标题

legend('Y1:机翼上线','Y2:机翼下线'), % 加入图例

gtext('Y1'),gtext('Y2')

得到的结果如下面的表4和图7-图8所示。

表3:机翼断面轮廓线加工所需数据(三次样条插值所得)

图7:机翼断面轮廓线图(三次样条插值法)

为对比说明为何应采取三次样条插值法,还分别作出了用拉格朗日插值法和分段线性插值法所得到的机翼断面轮廓图如下:

图8:用另两种插值法所得到的机翼断面轮廓图(用作对比)

由Matlab作图结果可见,用三次样条插值法所得到的机翼断面轮廓线较为光滑,与预想图像相符。而拉格朗日插值法所得图线已出现明显振荡,误差很大;分段线性插值法所得图线虽然外形大致相符,但也明显不够光滑,误差较大,无

法满足加工要求。可见Matlab计算结果与之前分析一致,应采用三次样条插值法获取加工数据。

(2)求解加工断面面积

之前已用插值方法获得了足够的机翼断面轮廓线的加工数据,接下来求解加工断面面积,可用数值积分方法求解:先分别求解出机翼上线Y1对x的积分,以及机翼下线Y2对x的积分,二者之差即为机翼断面的面积。关于积分方法的选择,先分别用梯形公式(trapz),自适应辛普森公式(quad)和自适应Gauss-Labatto 公式(quadl)三种积分方法分别对断面面积加以求解,并在之后进行对比和分析。

由于辛普森公式(quad)和自适应Gauss-Labatto公式(quadl)不可以直接对用数值给出的x,y数组进行积分,因此可以先对y1和y2函数分别建立函数M文件,然后再用quad和quadl命令对其进行调用。当然,也可以不用对Y1和Y2建立函数,而通过利用积分方法的定义式直接对离散数据进行积分,但不如前面的方法方便。故下面为方便起见,对于辛普森公式积分方法和自适应Gauss-Labatto 公式积分方法采用建立函数的方法,而对于梯形公式积分仍采用直接对用数值给出的数组进行积分。

Matlab程序代码如下:

%--------------------------作业题3_10机翼上线函数M文件源程序----------------------function y=exf3_10_1(x)

% 函数输入:机翼断面轮廓线x坐标(插值点)

% 函数输出:机翼断面上线Y1坐标

x0=[0 3 5 7 9 11 12 13 14 15]; % 输入机翼断面横坐标数据x

Y1=[0 1.8 2.2 2.7 3.0 3.1 2.9 2.5 2.0 1.6]; % 输入机翼断面上线纵坐标数据y1

y=spline(x0,Y1,x); % 输出用三次样条插值得到的函数值

end

%-------------------------作业题3_10机翼下线函数M文件源程序----------------------function y=exf3_10_2(x)

% 函数输入:机翼断面轮廓线x坐标(插值点)

% 函数输出:机翼断面上线Y1坐标

x0=[0 3 5 7 9 11 12 13 14 15]; % 输入机翼断面横坐标数据x

Y2=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6]; % 输入机翼断面下线纵坐标数据y2

y=spline(x0,Y2,x); % 输出用三次样条插值得到的函数值

end

%-------------------------作业题3_10脚本M文件源程序(积分部分)--------------------- clear;clc;

x0=[0 3 5 7 9 11 12 13 14 15]; % 输入机翼断面横坐标数据x

Y1=[0 1.8 2.2 2.7 3.0 3.1 2.9 2.5 2.0 1.6]; % 输入机翼断面上线纵坐标数据y1

Y2=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6]; % 输入机翼断面下线纵坐标数据y2

x=0:0.1:15; % 按要求以0.1为间隔设定插值点

数值积分与数值微分实验报告

实验三 数值积分与数值微分 【实验内容】 选用复合梯形公式,复合Simpson 公式,Romberg 算法高斯算法计算 (1) )5343916.1(sin 44102≈-=? I dx x I (2) )9460831.0,1)0((sin 10≈==?I f dx x x I (3) dx x e I x ?+=1024 ;(4) dx x x I ?++=1021)1ln( 【实验前的预备知识】 1、 深刻认识数值积分法的意义; 2、 明确数值积分精度与步长的关系; 3、 根据定积分的计算方法,可以考虑二重积分的计算问题。 4、 比较各种积分方法复杂度及收敛速度。 【实验方法或步骤】 1、 编制数值积分算法的程序; 2、 分别用两种算法计算同一个积分,并比较其结果; 3、 分别取不同步长n a b h /)(-=,试比较计算结果(如20,10=n 等); 4、 给定精度要求ε,试用变步长算法,确定最佳步长。 程序: 复合梯形公式求函数f 在区间【a ,b 】上的定积分代码 function [I,step]=CombineTraprl(f,a,b,eps) if(nargin==3) eps=1.0e-4;

end n=1; h=(b-a)/2; I1=0; I2=(subs(sym(f),findsym(sym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)>eps n=n+1; h=(b-a)/n; I1=I2; I2=0; for i=0:n-1 x=a+h*i; x1=x+h; I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym(f),findsym(sym(f)),x1)); end end I=I2;step=n; 用该方法计算)5343916.1(sin 44 102≈-=?I dx x I 的程序为 [q,s]=CombineTraprl('sqrt(4-(sinx)^2)',0,0.25,1.5343916) 得结果为q =0.4986 s =3即结果为0.4986积分区间为3个 辛普森公式求函数f 在区间【a ,b 】上的定积分代码 function [I,step]=IntSimpson(f,a,b,type,eps) %type 分别为1,2,3时分别为辛普森公式,3/8公式,复合辛普森 if(type==3&&nargin==4) eps=1.0e-4; end I=0; switch type case 1, I=((b-a)/6)*(subs(sym(f),findsym(sym(f)),a)+... 4*subs(sym(f),findsym(sym(f)),(a+b)/2)+... subs(sym(f),findsym(sym(f)),b)); step=1; case 2, I=((b-a)/8)*(subs(sym(f),findsym(sym(f)),a)+... 3*subs(sym(f),findsym(sym(f)),(2*a+b)/3)+... 3*subs(sym(f),findsym(sym(f)),(a+2*b)/3)+subs(sym(f),findsym(sym(f)),b)); step=1; case 3, n=2; h=(b-a)/2;

三次样条插值、拉格朗日插值、herminte插值

三次样条插值: function s=spline(x0,y0,y2l,y2n,x) n=length(x0); km=length(x); a(1)=-0.5; b(1)=3*(y0(2)-y0(1))/(2*(x0(2)-x0(1))); for j=1:n-1 h(j)=x0(j+1)-x0(j); end for j=2:n-1 alpha(j)=h(j-1)/(h(j-1)+h(j)); beta(j)=3*((1-alpha(j))*y0(j)-y(j-1)/h(j-1)+alpha(j)*(y0(j+1)-y0(j))/h(j)); a(j)=-alpha(j)/(2+(1-alpha(j))*a(j-1)); b(j)=(beta(j)-(1-alpha(j))*b(j-1))/(2+(1-alpha(j))*a(j-1)); end m(n)=(3*(y0(n)-y0(n-1))/h(n-1)+y2n*h(n-1)/2-b(n-1))/(2+a(n-1)); for j=(n-1):-1:1 m(j)=a(j)*m(j+1)+b(j); end for k=1:km for j=1:(n-1) if ((x(k)>x0(j))&(x(k)

数据分析实验报告

数据分析实验报告 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

第一次试验报告 习题1.3 1建立数据集,定义变量并输入数据并保存。 2数据的描述,包括求均值、方差、中位数等统计量。 分析—描述统计—频率,选择如下: 输出: 统计量 全国居民 农村居民 城镇居民 N 有效 22 22 22 缺失 均值 1116.82 747.86 2336.41 中值 727.50 530.50 1499.50 方差 1031026.918 399673.838 4536136.444 百分位数 25 304.25 239.75 596.25 50 727.50 530.50 1499.50 75 1893.50 1197.00 4136.75 3画直方图,茎叶图,QQ 图。(全国居民) 分析—描述统计—探索,选择如下: 输出: 全国居民 Stem-and-Leaf Plot Frequency Stem & Leaf 5.00 0 . 56788 数据分析实验报告 【最新资料,WORD 文档,可编辑修改】

2.00 1 . 03 1.00 1 . 7 1.00 2 . 3 3.00 2 . 689 1.00 3 . 1 Stem width: 1000 Each leaf: 1 case(s) 分析—描述统计—QQ图,选择如下: 输出: 习题1.1 4数据正态性的检验:K—S检验,W检验数据: 取显着性水平为0.05 分析—描述统计—探索,选择如下:(1)K—S检验

结果:p=0.735 大于0.05 接受原假设,即数据来自正太总体。 (2 )W 检验 结果:在Shapiro-Wilk 检验结果972.00 w ,p=0.174大于0.05 接受原假设,即数据来自正太总体。 习题1.5 5 多维正态数据的统计量 数据:

数值积分实验报告

数值分析实验报告 实验四数值积分 一、用复合辛普森和龙贝格算法计算: 复合辛普森主函数xps: function xps(a,b,eps) n=0;Sd=0; S=(f(a)+f(b))*(b-a)/2; while abs(Sd-S)>eps Sd=S; n=n+1; h=(b-a)/n; for i=1:n+1 x(i)=a+(i-1)*h; end S1=f(x(1))+f(x(n+1)); S2=0; S3=0; for i=2:n S2=S2+f(x(i)); end S2=2*S2; for i=1:n S3=S3+f((x(i)+x(i+1))/2); end S3=4*S3; S=(S1+S2+S3)*h/6; end fprintf('%.15f\n',S); 龙贝格主函数romberg2: function romberg2 (a,b,eps) %a,b为区间,eps为精度 Rd=0; R=(b-a)/2*(f(a)+f(b)); N=0; while abs(Rd-R)>eps Rd=R; N=N+1; for k=1:2 if k==1 n=N*2;

else; n=N; end h=(b-a)/n; for i=1:n+1 x(i)=a+(i-1)*h; end C=0; for i=1:n C1=7*f(x(i))+32*f(x(i)+1/4*h)+12*f(x(i)+2/4*h)+32*f(x(i)+3/4*h)+7*f(x(i+1)); C=C+C1*h/90; end if k==1 R=C*64/63; else R=R-C/63; end end end fprintf('结果为:%.15f',R); 1、建立被积函数文件f.m function y=f(x) y=exp(-x^2); 2、调用xps.m、romberg2.m求定积分. >> xps(0,0.5,0.0000001) 0.461281071728228 >>romberg2 (0,0.5,0.0000001) 结果为: 0.461281006413932

数值分析实验报告-插值、三次样条Word版

实验报告:牛顿差值多项式&三次样条 问题:在区间[-1,1]上分别取n=10、20用两组等距节点对龙格函数21()25f x x 作多项式插值及三次样条插值,对每个n 值,分别画出插值函数及()f x 的图形。 实验目的:通过编程实现牛顿插值方法和三次样条方法,加深对多项式插值的理解。应用所编程序解决实际算例。 实验要求: 1. 认真分析问题,深刻理解相关理论知识并能熟练应用; 2. 编写相关程序并进行实验; 3. 调试程序,得到最终结果; 4. 分析解释实验结果; 5. 按照要求完成实验报告。 实验原理: 详见《数值分析 第5版》第二章相关内容。 实验内容: (1)牛顿插值多项式 1.1 当n=10时: 在Matlab 下编写代码完成计算和画图。结果如下: 代码: clear all clc x1=-1:0.2:1; y1=1./(1+25.*x1.^2); n=length(x1); f=y1(:); for j=2:n for i=n:-1:j f(i)=(f(i)-f(i-1))/(x1(i)-x1(i-j+1)); end end syms F x p ; F(1)=1;p(1)=y1(1); for i=2:n F(i)=F(i-1)*(x-x1(i-1)); p(i)=f(i)*F(i); end

syms P P=sum(p); P10=vpa(expand(P),5); x0=-1:0.001:1; y0=subs(P,x,x0); y2=subs(1/(1+25*x^2),x,x0); plot(x0,y0,x0,y2) grid on xlabel('x') ylabel('y') P10即我们所求的牛顿插值多项式,其结果为:P10(x)=-220.94*x^10+494.91*x^8-9.5065e-14*x^7-381.43*x^6-8.504e-14*x^5+123.36*x^4+2.0 202e-14*x^3-16.855*x^2-6.6594e-16*x+1.0 并且这里也能得到该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.1)。 Fig.1 牛顿插值多项式(n=10)函数和原函数图形 从图形中我们可以明显的观察出插值函数在两端点处发生了剧烈的波动,产生了极大的误差,即龙格现象,当n=20时,这一现象将更加明显。 1.2 当n=20时: 对n=10的代码进行修改就可以得到n=20时的代码。将“x1=-1:0.2:1;”改为“x1=-1:0.1:1;”即可。运行程序,我们得到n=20时的牛顿插值多项式,结果为:P20(x)= 260188.0*x^20 - 1.0121e6*x^18 + 2.6193e-12*x^17 + 1.6392e6*x^16 + 2.248e-11*x^15 - 1.4429e6*x^14 - 4.6331e-11*x^13 + 757299.0*x^12 + 1.7687e-11*x^11 - 245255.0*x^10 + 2.1019e-11*x^9 + 49318.0*x^8 + 3.5903e-12*x^7 - 6119.2*x^6 - 1.5935e-12*x^5 + 470.85*x^4 + 1.3597e-14*x^3 - 24.143*x^2 - 1.738e-14*x + 1.0 同样的,这里得到了该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.2)。

数值分析上机实验报告

数值分析上机实验报告

《数值分析》上机实验报告 1.用Newton 法求方程 X 7-X 4+14=0 在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001)。 1.1 理论依据: 设函数在有限区间[a ,b]上二阶导数存在,且满足条件 {}α?上的惟一解在区间平方收敛于方程所生的迭代序列 迭代过程由则对任意初始近似值达到的一个中使是其中上不变号 在区间],[0)(3,2,1,0,) (') ()(],,[x |))(),((|,|,)(||)(|.4;0)(.3],[)(.20 )()(.110......b a x f x k x f x f x x x Newton b a b f a f mir b a c x f a b c f x f b a x f b f x f k k k k k k ==- ==∈≤-≠>+ 令 )9.1()9.1(0)8(4233642)(0)16(71127)(0)9.1(,0)1.0(,1428)(3 2 2 5 333647>?''<-=-=''<-=-='<>+-=f f x x x x x f x x x x x f f f x x x f 故以1.9为起点 ?? ?? ? ='- =+9.1)()(01x x f x f x x k k k k 如此一次一次的迭代,逼近x 的真实根。当前后两个的差<=ε时,就认为求出了近似的根。本程序用Newton 法求代数方程(最高次数不大于10)在(a,b )区间的根。

1.2 C语言程序原代码: #include #include main() {double x2,f,f1; double x1=1.9; //取初值为1.9 do {x2=x1; f=pow(x2,7)-28*pow(x2,4)+14; f1=7*pow(x2,6)-4*28*pow(x2,3); x1=x2-f/f1;} while(fabs(x1-x2)>=0.00001||x1<0.1); //限制循环次数printf("计算结果:x=%f\n",x1);} 1.3 运行结果: 1.4 MATLAB上机程序 function y=Newton(f,df,x0,eps,M) d=0; for k=1:M if feval(df,x0)==0 d=2;break else x1=x0-feval(f,x0)/feval(df,x0); end e=abs(x1-x0); x0=x1; if e<=eps&&abs(feval(f,x1))<=eps d=1;break end end

插值法实验报告

实验二插值法 1、实验目的: 1、掌握直接利用拉格郎日插值多项式计算函数在已知点的函数值;观察拉格郎日插值的龙格现象。 2、了解Hermite插值法、三次样条插值法原理,结合计算公式,确定函数值。 2、实验要求: 1)认真分析题目的条件和要求,复习相关的理论知识,选择适当的解决方案和算法; 2)编写上机实验程序,作好上机前的准备工作; 3)上机调试程序,并试算各种方案,记录计算的结果(包括必要的中间结果); 4)分析和解释计算结果; 5)按照要求书写实验报告; 3、实验内容: 1) 用拉格郎日插值公式确定函数值;对函数f(x)进行拉格郎日插值,并对f(x)与插值多项式的曲线作比较。 已知函数表:(0.56160,0.82741)、(0.56280,0.82659)、(0.56401,0.82577)、(0.56521,0.82495)用三次拉格朗日插值多项式求x=0.5635时函数近似值。 2) 求满足插值条件的插值多项式及余项 1) 4、题目:插值法 5、原理: 拉格郎日插值原理: n次拉格朗日插值多项式为:L n (x)=y l (x)+y 1 l 1 (x)+y 2 l 2 (x)+…+y n l n (x)

n=1时,称为线性插值, L 1(x)=y (x-x 1 )/(x -x 1 )+y 1 (x-x )/(x 1 -x )=y +(y 1 -x )(x-x )/(x 1 -x ) n=2时,称为二次插值或抛物线插值, L 2(x)=y (x-x 1 )(x-x 2 )/(x -x 1 )/(x -x 2 )+y 1 (x-x )(x-x 2 )/(x 1 -x )/(x 1 -x 2 )+y 2 (x -x 0)(x-x 1 )/(x 2 -x )/(x 2 -x 1 ) n=i时, Li= (X-X0)……(X-X i-1)(x-x i+1) ……(x-x n) (X-X0)……(X-X i-1)(x-x i+1) ……(x-x n) 6、设计思想: 拉格朗日插值法是根据n + 1个点x0, x1, ... x n(x0 < x1 < ... x n)的函数值f (x0), f (x1) , ... , f (x n)推出n次多項式p(x),然后n次多項式p (x)求出任意的点x对应的函数值f (x)的算法。 7、对应程序: 1 ) 三次拉格朗日插值多项式求x=0.5635时函数近似值 #include"stdio.h" #define n 5 void main() { int i,j; float x[n],y[n]; float x1; float a=1; float b=1; float lx=0; printf("\n请输入想要求解的X:\n x="); scanf("%f",&x1); printf("请输入所有点的横纵坐标:\n"); for(i=1;i

数值分析实验报告1

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b =

的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots + 上述简单的Matlab 程序便得到()的全部根,程序中的“ess ”即是()中的ε。 实验要求: (1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。 如果扰动项的系数ε很小,我们自然感觉()和()的解应当相差很小。计算中你有什么出乎意料的发现表明有些解关于如此的扰动敏感性如何 (2)将方程()中的扰动项改成18x ε或其它形式,实验中又有怎样的现象 出现 (3)(选作部分)请从理论上分析产生这一问题的根源。注意我们可以将 方程()写成展开的形式, ) 3.1(0 ),(1920=+-= x x x p αα 同时将方程的解x 看成是系数α的函数,考察方程的某个解关于α的扰动是否敏感,与研究它关于α的导数的大小有何关系为什么你发现了什么现象,哪些根关于α的变化更敏感 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。

(完整版)哈工大-数值分析上机实验报告

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。重复运行计算,直至满足精度为止。这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式 产生逼近解x*的迭代数列{x k},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0;

%%%误差 R=1; k=0;%迭代次数初值 while (R>5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c%给出解 Newton法及改进的Newton法源程序:clear %%%% 输入函数 f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f);

数据分析实验报告

数据分析实验报告 【最新资料,WORD文档,可编辑修改】 第一次试验报告 习题1.3 1建立数据集,定义变量并输入数据并保存。 2数据的描述,包括求均值、方差、中位数等统计量。 分析—描述统计—频率,选择如下: 输出:

方差1031026.918399673.8384536136.444百分位数25304.25239.75596.25 50727.50530.501499.50 751893.501197.004136.75 3画直方图,茎叶图,QQ图。(全国居民) 分析—描述统计—探索,选择如下: 输出: 全国居民Stem-and-Leaf Plot Frequency Stem & Leaf 9.00 0 . 122223344 5.00 0 . 56788 2.00 1 . 03 1.00 1 . 7 1.00 2 . 3 3.00 2 . 689

1.00 3 . 1 Stem width: 1000 Each leaf: 1 case(s) 分析—描述统计—QQ图,选择如下: 输出: 习题1.1 4数据正态性的检验:K—S检验,W检验数据: 取显着性水平为0.05 分析—描述统计—探索,选择如下:(1)K—S检验 单样本Kolmogorov-Smirnov 检验 身高N60正态参数a,,b均值139.00

标准差7.064 最极端差别绝对值.089 正.045 负-.089 Kolmogorov-Smirnov Z.686 渐近显着性(双侧).735 a. 检验分布为正态分布。 b. 根据数据计算得到。 结果:p=0.735 大于0.05 接受原假设,即数据来自正太总体。(2)W检验

matlab计算方法实验报告5(数值积分)

计算方法实验报告(5) 学生姓名杨贤邦学号指导教师吴明芬实验时间2014.4.16地点综合实验大楼203 实验题目数值积分方法 实验目的●利用复化梯形、辛普森公式和龙贝格数值积分公式计算定积分的 近似植。 实验内容●梯形、辛普森、柯特斯法及其Matlab实现; ●变步长的梯形、辛普森、柯特斯法及其Matlab实现。 ●题目由同学从学习材料中任意选两题 算法分析梯形:function y=jifeng_tixing(a,b,n,fun) fa=feval(fun,a); fb=feval(fun,b); s=0; h=(b-a)/n; for k=1:n-1 xk=a+k*h; s=feval(fun,xk)+s; end y=(h/2)*(fa+fb+2*s); 辛普生:function y=jifeng_xingpu(a,b,n,fun) fa=feval(fun,a); fb=feval(fun,b); h=(b-a)/n; s=0; s2=feval(fun,a+0.5*h); for k=1:n-1 xk=a+k*h; s=feval(fun,xk)+s; s2=feval(fun,xk+(h/2))+s2; end

与源程序y=(h/6)*(fa+fb+2*s+4*s2); 龙贝格:function r2=jifeng_long(fun,a,b,e) h=b-a; t1=(h/2)*(feval(fun,a)+feval(fun,b)); k=1; r1=10; r2=0; c2=0; while abs(r2-r1)>e; s=0; x=a+h/2; while x=3 r1=r2; c2=s2+(1/15)*(s2-s1); r2=c2+(1/63)*(c2-c1); k=k+1;h=h/2; t1=t2;s1=s2; c1=c2; end end

三次样条插值方法的应用

CENTRAL SOUTH UNIVERSITY 数值分析实验报告

三次样条插值方法的应用 一、问题背景 分段低次插值函数往往具有很好的收敛性,计算过程简单,稳定性好,并且易于在在电子计算机上实现,但其光滑性较差,对于像高速飞机的机翼形线船体放样等型值线往往要求具有二阶光滑度,即有二阶连续导数,早期工程师制图时,把富有弹性的细长木条(即所谓的样条)用压铁固定在样点上,在其他地方让他自由弯曲,然后沿木条画下曲线,称为样条曲线。样条曲线实际上是由分段三次曲线并接而成,在连接点即样点上要求二阶导数连续,从数学上加以概括就得到数学样条这一概念。下面我们讨论最常用的三次样条函数及其应用。 二、数学模型 样条函数可以给出光滑的插值曲线(面),因此在数值逼近、常微分方程和偏微分方程的数值解及科学和工程的计算中起着重要的作用。 设区间[]b ,a 上给定有关划分b x x n =<<<= 10x a ,S 为[]b ,a 上满足下面条件的函数。 ● )(b a C S ,2∈; ● S 在每个子区间[]1,+i i x x 上是三次多项式。 则称S 为关于划分的三次样条函数。常用的三次样条函数的边界条件有三种类型: ● Ⅰ型 ()()n n n f x S f x S ''0'',==。 ● Ⅱ型 ()()n n n f x S f x S ''''0'''',==,其特殊情况为()()0''''==n n x S x S 。 ● Ⅲ型 ()() 3,2,1,0,0==j x S x S n j j ,此条件称为周期样条函数。 鉴于Ⅱ型三次样条插值函数在实际应用中的重要地位,在此主要对它进行详细介绍。 三、算法及流程 按照传统的编程方法,可将公式直接转换为MATLAB 可是别的语言即可;另一种是运用矩阵运算,发挥MATLAB 在矩阵运算上的优势。两种方法都可以方便地得到结果。方法二更直观,但计算系数时要特别注意。这里计算的是方法一的程序,采用的是Ⅱ型边界条件,取名为spline2.m 。 Matlab 代码如下: function s=spline2(x0,y0,y21,y2n,x) %s=spline2(x0,y0,y21,y2n,x) %x0,y0 are existed points,x are insert points,y21,y2n are the second

数值积分与数值微分实验报告

实验三 数值积分程序设计算法 1)实验目的 通过本次实验熟悉并掌握各种数值积分算法及如何在matlab 中通过设计程序实现这些算法,从而更好地解决实际中的问题。 2)实验题目 给出积分 dx x I ? -= 3 2 2 1 1 1.用Simpson 公式和N=8的复合Simpson 公式求积分的近似值. 2.用复合梯形公式、复合抛物线公式、龙贝格公式求定积分,要求绝对误差为 7 10*2 1-= ε,将计算结果与精确解做比较,并对计算结果进行分析。 3)实验原理与理论基础 Simpson 公式 )]()2 ( 4)([6 b f b a f a f a b S +++-= 复化梯形公式 将定积分? = b a dx x f I )(的积分区间],[b a 分隔为n 等分,各节点为 n j jh a x j ,,1,0, =+= n a b h -= 复合梯形(Trapz)公式为 ])()(2)([21 1 ∑-=++-= n j j n b f x f a f n a b T 如果将],[b a 分隔为2n 等分,而n a b h /)(-=不变, 则 )]()(2)(2)([41 2 111 2b f x f x f a f n a b T n j j n j j n +++-= ∑∑-=+-= 其中 h j a h x x j j )2 1(2 12 1+ +=+ =+ ,)]()(2)(2)([41 2 11 1 2b f x f x f a f n a b T n j j n j j n +++-= ∑∑-=+ -= ∑ -=-++-+ =1 )2) 12((22 1n j n n a b j a f n a b T n=1时,a b h -=,则)]()([2 1b f a f a b T +-= )0(0T = )2 1(2 2 112h a f a b T T + -+ =)1(0T = 若12-=k n ,记)1(0-=k T T n , ,2,1=k 1 2 --= k a b h jh a x j +=1 2 --+=k a b j a h x x j j 2 12 1+ =+ k a b j a 2 ) 12(-++=,则可得如下递推公式

数值分析实验报告总结

数值分析实验报告总结 随着电子计算机的普及与发展,科学计算已成为现代科 学的重要组成部分,因而数值计算方法的内容也愈来愈广泛和丰富。通过本学期的学习,主要掌握了一些数值方法的基本原理、具体算法,并通过编程在计算机上来实现这些算法。 算法算法是指由基本算术运算及运算顺序的规定构成的完 整的解题步骤。算法可以使用框图、算法语言、数学语言、自然语言来进行描述。具有的特征:正确性、有穷性、适用范围广、运算工作量少、使用资源少、逻辑结构简单、便于实现、计算结果可靠。 误差 计算机的计算结果通常是近似的,因此算法必有误差, 并且应能估计误差。误差是指近似值与真正值之差。绝对误差是指近似值与真正值之差或差的绝对值;相对误差:是指近似值与真正值之比或比的绝对值。误差来源见表 第三章泛函分析泛函分析概要 泛函分析是研究“函数的函数”、函数空间和它们之间 变换的一门较新的数学分支,隶属分析数学。它以各种学科

如果 a 是相容范数,且任何满足 为具体背景,在集合的基础上,把客观世界中的研究对象抽 范数 范数,是具有“长度”概念的函数。在线性代数、泛函 分析及相关的数学领域,泛函是一个函数,其为矢量空间内 的所有矢量赋予非零的正长度或大小。这里以 Cn 空间为例, Rn 空间类似。最常用的范数就是 P-范数。那么 当P 取1, 2 ,s 的时候分别是以下几种最简单的情形: 其中2-范数就是通常意义下的距离。 对于这些范数有以下不等式: 1 < n1/2 另外,若p 和q 是赫德尔共轭指标,即 1/p+1/q=1 么有赫德尔不等式: II = ||xH*y| 当p=q=2时就是柯西-许瓦兹不等式 般来讲矩阵范数除了正定性,齐次性和三角不等式之 矩阵范数通常也称为相容范数。 象为元素和空间。女口:距离空间,赋范线性空间, 内积空间。 1-范数: 1= x1 + x2 +?+ xn 2-范数: x 2=1/2 8 -范数: 8 =max oo ,那 外,还规定其必须满足相容性: 所以

Romberg数值积分实验报告

Romberg数值积分实验报告 班级:__ 姓名:学号:日期:_ 一、实验目的 1、加深外推法的原理理解, 掌握Romberg外推法的计算方法。 2、用matlab软件实现Romberg数值积分来计算题目的运算。 二、基本理论及背景 1、理论推导: 对区间[a,b],令h=b-a构造梯形值序列{T2K}。 T1=h[f(a)+f(b)]/2 把区间二等分,每个小区间长度为h/2=(b-a)/2,于是 T2 =T1/2+[h/2]f(a+h/2) 把区间四(2)等分,每个小区间长度为h/2 =(b-a)/4,于是 T4 =T2/2+[h/2][f(a+h/4)+f(a+3h/4)..................... 把[a,b] 2等分,分点xi=a+(b-a)/ 2 ·i (i =0,1,2 · · · 2k)每个小区间长度为(b-a)/ 2 . 2、参考Romberg数值积分,实现积分的数值求解,完成下列题目: 三、算法设计及实现 1、算法设计 (a)function y=fun1(x) y=sqrt(4-(sin(x)).^2); (b)function y=fun2 (x) y=log(1+2*x)/3; (c)function y=fun3(x) y=exp(-x).*sin(x.^2) 四、实验步骤 1、○1打开matlab软件,新建Romberg.m文件,在窗口中编辑Romber数值积分函数程序代码,并保存在指定的文件夹下,在Current Directory窗口右边点击《Browse For Folder》按钮指向Romberg.m文件; ○2在Command Window中编辑相应要计算的题目的数值函数及相应的题目的表达式。 2、输出结果和初步分析说明(见附件一)。 五、使用说明实验结果分析 1、在Command Window窗口中编辑要调用的函数名与指定的函数名字不同导致出现错误,通过改正与函数名相同即可。 2、Romberg方法也称为逐次分半加速法。它是在梯形公式、辛卜生公式和柯特斯公式之间的关系的基础上,构造出一种加速计算积分的方法。作为一种外推算法,它在不增加计算量的前提下提高了误差的精度在等距基点的情况下,用计

MATLAB数值积分求值实验报告

3 学号班级统计1001 姓名指导教师易昆南实验题目用多种方法计算数值积分评分 1、设计(实习)目的: 1.了解MATLAB在实际问题中的应用 2.通过实践加深对这门语言中M文件的了解 3.熟悉简单程序结构,如循环结构(for循环、while循环)选择结构(if-else-if)、分支语句(switch-case-otherwise)。 2、实验内容: (1).分别用左、右矩形法,梯形法,复化辛普森公式计算y=x^2在[0,1]上的定积分;(2).用蒙特卡罗随机投点法计算y=1/(1+x^2)在[0,1]上的定积分,并求出pi的近似值;(3).用蒙特卡罗均值估计法计算y=x^2在[0,1]上的定积分。 3.详细设计: 一.左、右矩形法和梯形法: h=1/200; x=0:h:1; y=x.^2; z1=sum(y(1:200))*h %左矩形法 z2=sum(y(2:201))*h%右矩形法 z=cumsum(y); z11=z(200)*h; %等同z1 z12=(z(201)-z(1))*h; %等同z2 z3=trapz(x,y) %梯形法,等同于z3=trapz(y)*h 二.复化辛普森公式法: y=inline('x.^2'); z1=quad(y,0,1,100) %simpleson公式 z2=quadl(y,0,1,100) %复化simpleson公式 z3=quad8(y,0,1,100,trace(10))%simpleson8阶公式法 三.蒙特卡罗随机投点法: n=100000; k=0; for i=1:n x=rand; %产生(0,1)区间的随机数 y=rand; if y<=1/(1+x^2); %对y=1/(1+x^2)面积投点 k=k+1; end end z=k/n pi=4*k/n %由积分pi/4=k/n而来,前者是概率,后者是频率

实验四 三次样条插值

实验四三次样条插值的应用 一、问题描述 The upper portion of this noble beast is to be approximated using clamped cubic spline interpolants. The curve is drawn on a grid from which the table is constructed. Use Algorithm 3.5 to construct the three clamped cubic splines. 二、模型建立 三次样条插值 给定一个列表显示的函数 yi=y(xi),i=0,1,2,...,N-1。特别注意在xj和xj+1之间的一个特殊的区间。该区间的线性插值公式为:

(3.3.1)式和(3.3.2)式是拉格朗日插值公式(3.1.1)的特殊情况。 因为它是(分段)线性的,(3.3.1)式在每一区间内的二阶导数为零,在横坐标为xj处的二阶导数不定义或无限。三次样条插值的目的就是要得到一个内插公式,不论在区间内亦或其边界上,其一阶导数平滑,二阶导数连续。 做一个与事实相反的个假设,除yi的列表值之外,我们还有函数二阶导数y"的列表值,即一系列的yi"值,则在每个区间内,可以在(3.3.1)式的右边加上一个三次多项式,其二阶导数从左边的yj"值线性变化到右边的yj+1"值,这么做便得到了所需的连续二阶导数。如果还将三次多项式构造在xj和xj+1处为零,则不会破坏在终点xj和xj+1处与列表函数值yj和yj+1的一致性。 进行一些辅助计算便可知,仅有一种办法才能进行这种构造,即用 注意,(3.3.3)式和(3.3.4)式对自变量x的依赖,是完全通过A和B对x的线性依赖,以及C和D(通过A和B)对x的三次依赖而实现。可以很容易地验证,y"事实上是该插值多项式的二阶导数。使用ABCD的定义对x求(3.3.3)式的导数,计算dA/dx dB/dx dC/dx dD/dx,结果为一阶导数

数值积分实验报告1

数学与计算科学学院实验报告 实验项目名称数值积分 所属课程名称数值计算 实验类型验证 实验日期2012年10月11日 班级 学号 姓名 成绩

一、实验概述: 【实验目的】 【实验原理】 【实验环境】 二、实验内容: 【实验方案】 方案一:用复合求积公式验证P85例题4.1,比较各方法的精度。 方案二:用复合求积公式P103 习题2(1)(2)(3),比较个方法的精度; 分别讨论当区间n等分,当n=10, 100,时比较n取值不同时对数值精度的影响的结果。 【实验过程】(实验步骤、记录、数据、分析) (一):使用C++运行程序得:

显然,各方法的精度大小关系是:梯形公式<辛普森公式<复合梯形公式<复合辛普森公式。 (二):先用积分计算出1115718.0|)4ln(21(2141 02104)1 0222 =+==+??+x x x x dx x d 运行C++程序得到: 显然各方法的精度大小关系也是:梯形公式<辛普森公式<复合梯形公式<复合辛普森公式。 (1)当n=10时,运行C++程序得:

(2)当n=100时,运行C++程序得: 由上两幅图可以看出:n取不同值时,梯形公式,辛普森公式,和复合辛普森公式的精度不受影响,复合梯形公式的精度会随着n的增大而有所提高; 【实验结论】(结果) 各方法的精度大小关系是:梯形公式<辛普森公式<复合梯形公式<复合辛普森公式。n取不同值时,梯形公式,辛普森公式,和复合辛普森公式的精度不受影响,复合梯形公式的精度会随着n的增大而有所提高,当n取足够大时,复合梯形公式的精度可能会超过复合辛普森公式。

相关主题