现代数值计算方法实验三 - 范文中心

现代数值计算方法实验三

11/18

实验报告

实验三 插值法与拟合实验

一、实验目的

1、懂得利用数据建模两种方法(插值法和拟合多项式法)对一批数据(x 1, y 1),

(x 2, y 2),……,(x n , y n )进行处理,学会对数据的结果进行误差分析.

2、比较分析这些方法的优缺点,并且在适合的场合应用相应的方法.

二、实验题目

1. 插值效果的比较

实验题目:将区间[-5, 5]10等分,对下列函数分别计算插值节点x k 的值,进行不同类型的插值,作出插值函数的图形并与y =f (x )的图形进行比较:

f x )=

11+x

2

; f (x )=a r c t a x n ; f (x )=

x

24

1+x

.

(1) 做拉格朗日插值; (2) 做三次样条插值. 2. 拟合多项式实验

实验题目:给定数据点如下表所示:

分别对上述数据作三次多项式和五次多项式拟合,并求平方误差,作出离散函数(x i , y i ) 和拟合函数的图形.

三、实验原理

数据建模有两大方法:一类是插值方法,要求所要函数ϕ(x )严格遵守从数

据(x 1, y 1),(x 2, y 2),……,(x n , y n );另一类是拟合方法,允许函数ϕ(x )在数据点上的有误差,但是要求达到某种误差指标的最小化.

第一题

⑴拉格朗日插值算法原理 %malagr.m

function yy=malagr(x,y,xx) %用途:拉格朗日插值法求解

%格式:yy=malagr(x,y,xx), x是节点向量,y 是节点对应的函数值向量, % xx是插值点(可以是多个),,yy 返回插值结果 m=length(x);n=length(y);

if m~=n, error('向量x 与y 的长度必须一致');end s=0; for i=1:n

t=ones(1,length(xx)); for j=1:n if j~=i

t=t.*(xx-x(j))/(x(i)-x(j)); end end

s=s+t*y(i); end yy=s; end

⑵三次样条插值算法原理: %maspline.m

function m=maspline(x,y,dy0,dyn,xx) %用途:三阶样条插值(一阶导数边界条件)

%格式:m=maspline(x,y,dy0,dyn,xx), x为节点向量,y 为数据, %dy0,dyn为左右两端点的一阶导数如果xx 缺省,则输出各节点的 %的一阶导数值,,m 为xx 的三阶样条插值

format short;

n=length(x)-1; %计算小区间的个数

h=diff(x); lambda=h(2:n)./(h(1:n-1)+h(2:n)); mu=1-lambda;

theta=3*(lambda.*diff(y(1:n))./h(1:n-1)+mu.*diff(y(2:n+1))./h(2:n)); theta(1)=theta(1)-lambda(1)*dy0; theta(n-1)=theta(n-1)-lambda(n-1)*dyn; %追赶法解散对焦方程组

dy=machase(lambda,2*ones(1:n-1),mu,theta); %若给插值点,计算插值 m=[dy0;dy;dyn]; if nargin>=5

s=zeros(size(xx)); for i=1:n if i==1

kk=find(xx

kk=find(xx>x(n)); else

kk=find(xx>x(i)&xx

xbar=(xx(kk)-x(i))/h(i);

s(kk)=alpha0(xbar)*y(i)+alpha1(xbar)*y(i+1)+... +h(i)*beta0(xbar)*m(i)+h(i)*beta1(xbar)*m(i+1); end m=s; end %追赶法

function x=machase(a,b,c,d) n=length(a);

for k=2:n

b(k)=b(k)-a(k)/b(k-1)*c(k-1); d(k)=d(k)-a(k)/b(k-1)*d(k-1); end

x(n)=d(n)/b(n); for k=n-1:-1:1

x(k)=(d(k)-c(k)*x(k+1))/b(k); end x=x(:); %基函数

function y=alpha0(x) y=2*x.^3-3*x.^2+1; function y=alpha1(x) y=-2*x.^3+3*x.^2; function y=beta0(x) y=x.^3-2*x.^2+x; function y=beta1(x) y=x.^3-x.^2;

第二题:多项式拟合算法原理: %mafit.m

function p=mafit(x,y,m) % 用途:多项式拟合

%格式:p=mafit(x,y,m), x, y为数据向量,m 为拟合多项式次数,p 返回 %多项式系数降幂排列 format short; A=zeros(m+1,m+1); for i=0:m for j=0:m

A(i+1,j+1)=sum(x.^(i+j)); end

b(i+1)=sum(x.^i.*y); end a=A\b';

p=fliplr(a'); %按降幂排列

四、实验内容

⑴第一个方程的程序: x=-5:0.1:5; y=1./(1+x.^2); plot(x,y,'r') hold on %拉格朗日插值 x1=-5:1:5; y1=1./(1+x1.^2); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx); plot(xx,yy,'b*') %三次样条插值 dy0=-2*(-5)/(1+25); dyn=-2*5/(1+25);

m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok')

⑵ 第二个方程的程序: x=-5:0.2:5; y=atan(x); plot(x,y,'r');

hold on %拉格朗日插值 x1=-5:1:5; y1=atan(x1); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx); plot(xx,yy,'b*') %三次样条插值 dy0=1./(1+25); dyn=1./(1+25);

m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok')

⑶第三个方程的程序: x=-5:0.1:5; y=x.^2./(1+x.^4); plot(x,y,'r') hold on %拉格朗日插值 x1=-5:1:5;

y1=x1.^2./(1+x1.^4); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx);

plot(xx,yy,'b*') %三次样条插值

dy0=-2*(-5)*(1-5.^4)/(1+5.^4); dyn=-2*(5)*(1-5.^4)/(1+5.^4); m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok')

axis([-5,5,-0.2,1])

第二题:多项式拟合程序:

x=[-1.5 -1.0 -0.5 0.0 0.5 1.0 1.5]'; y=[-4.45 -0.45 0.55 0.05 -0.44 0.54 4.55]'; plot(x,y,'or'); hold on %三次多项式拟合 p1=mafit(x,y,3); x1=-1.5:0.1:1.5;

y1=p1(1)*x1.^3+p1(2)*x1.^2+p1(3)*x1+p1(4); plot(x1,y1,'.-') %平方误差

y11=p1(1)*x.^3+p1(2)*x.^2+p1(3)*x+p1(4); err1=sum((y-y11).^2) %五次多项式拟合 p2=mafit(x,y,5); x1=-1.5:0.1:1.5;

y2=p2(1)*x1.^5+p2(2)*x1.^4+p2(3)*x1.^3+p2(4)*x1.^2+p2(5)*x1+p2(6); plot(x1,y2,'g') %平方误差

y22=p2(1)*x.^5+p2(2)*x.^4+p2(3)*x.^3+p2(4)*x.^2+p2(5)*x+p2(6);

err2=sum((y-y22).^2)

五、实验结果

第一题

⑴第一个方程的图形:

1.61.4

1.210.80.60.40.20-0.2-0.4-5

-4

-3

-2

-1

1

2

3

4

5

⑵第二个方程的图形:

1.5

1

0.5

-0.5

-1

-1.5-5

-4-3-2-1012345

⑶第三个方程的图形:

0.8

0.6

0.4

0.2

-0.2-5

-4-3-2-1012345

第二题:

平方误差:三次多项式拟合的平方误差:err1 =1.8571e-004

五次多项式拟合的平方误差:err2 =4.7727e-005

离散函数(x i , y i ) 和拟合函数的图形:

-1.5

-1

-0.5

0.5

1

1.5

六、 实验结果分析

1、由第一题的三个图可知:拉格朗日插值会出现很大的误差,即Runge 现象,运行的结果不好,但是三次样条插值法的效果就很好,误差很小,接近真实值. 2、由第二题的图像知,三次多项式拟合和五次多项式的拟合效果都很好. 比较三次多项式拟合的平方误差:err1 =1.8571e-004和五次多项式拟合的平方误差:err2 =4.7727e-005知五次多项式拟合比三次多项式拟合更加准确.


相关内容

  • 理论应力集中系数的有限元求法
    2005年第3期航空兵器2005No. 3 2005年06月AERO WEAPONRY Jun. 2005 理论应力集中系数的有限元求法 董志航,廖志忠 (中国空空导弹研究院,河南洛阳 471009) 摘 要:疲劳计算已经成为现代机械零件强 ...
  • 机械毕业设计题目20**年
    能源与机械工程学院毕业设计题目申报单 吴懋亮 题目:平行流道质子交换膜燃料电池工作性能的模拟分析 毕 业 设 计 一 希望指导学生人数:1 内容介绍(目的.意义.主要内容) 质子交换膜燃料电池是利用氢气为燃料,通过电化学反应直接将化学能转换 ...
  • 毕业设计目录
    目 录 1 毕业设计(论文)简介------------------------------------------------------1 2 毕业设计(论文)总体要求 --------------------------------- ...
  • CFD仿真
    3.1气体泄漏扩散的模拟方法 目前在研究气体扩散领域应用较多的模拟方法主要有三种,即:物理模拟方法. 数学模拟方法和CFD 数值模拟方法.当然在实际的模拟仿真过程中,经常是两种或是三种方法同时使用,以此来验证模拟的准确性. 3.1.1物理模 ...
  • 成绩单 英语翻译
    Advanced Computational Fluid Dynamics 高等计算流体力学 Advanced Mathematics 高等数学 Advanced Numerical Analysis 高等数值分析 Algorithmic ...
  • [弹性力学及有限元]教学大纲
    <弹性力学及有限元>教学大纲 大纲说明 课程代码:5125004 总学时:40学时(讲课32学时,上机8学时) 总学分:2.5学分 课程类别:必修 适用专业:土木工程专业(本科) 预修要求:高等数学.理论力学.材料力学 课程的性 ...
  • 钢结构实验指导书20**年
    <钢结构实验>指导书 实验课程:<钢结构实验> 实验项目:一.C 型钢梁受弯实验 二.C 型轻钢柱试验 三.材性试验 一.C 型钢梁受弯实验 1.实验目的 了解钢梁受弯实验的一般过程. 学习和掌握有关常用设备仪器的安 ...
  • 电路实训报告
    数字电路 实 验 报 告 姓 名: 田月皎 学 号: [1**********]01 学 院: 信息学院 专 业: 计算机科学与技术 指 导 教 师: 邹 尔宁 协助指导教师: 2011年 12 月 28 日 实验一 常用仪器仪表使用 一. ...
  • 电力系统及自动化综合实验指导书1
    第三章 一机-无穷大系统稳态运行方式实验 一.实验目的 1.了解和掌握对称稳定情况下,输电系统的各种运行状态与运行参数的数值变化范围: 2.了解和掌握输电系统稳态不对称运行的条件:不对称度运行参数的影响:不对称运行对发电机的影响等. 二.原 ...
  • 高中物理实验总结
    篇一:高中物理实验总结[最新完整版] 高中生资料大全网: 高中物理实验总结[最新完整版] (一共有55页,物理实验总结大全,包括高中所有必考的实验啦! 是目前最完整的啦!!) ★知识结构: 方法指导: 一.基本实验的复习 要应对各类实验试题 ...