欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

数学建模 [作业问题 - 解释性摘要(数据处理方法、规划模型、图形和网络模型、微分方程模型、统计模型、系统评价决策模型)] 第 3 章 数据处理方法- 第 3 章 数据处理方法

最编程 2024-04-20 18:46:38
...

3.1、数据插值练习题

1、估计每隔1/10小时的温度值。

在1-12的11小时内,每隔1小时测量一次温度,测得的温度依次为:5,8,9,15,25,29,31,30,22,25,27,24。试估计每隔1/10小时的温度值。

hours = 1:12;
temps = [5 8 9 15 25 29 31 30 22 25 27 24];
h = 1:0.1:12;
t = interp1(hours,temps,h,'spline')  % (直接输出数据将是很多的)
plot(hours, temps, '+')
hold on
plot(h, t, hours, temps, 'r:')     %作图
xlabel('Hour'),ylabel('Degrees Celsius')

2、作出山区的地貌图和等高线图,并对几种插值方法进行比较。

某山区地貌:

在某山区测得一些地点的高程如下表。平面区域为

           (1200<=x<=4000,1200<=y<=3600)

试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。

    X

 Y

1200

1600

2000

2400

2800

3200

3600

4000

1200

1130

1250

1280

1230

1040

900

500

700

1600

1320

1450

1420

1400

1300

700

900

850

2000

1390

1500

1500

1400

900

1100

1060

950

2400

1500

1200

1100

1350

1450

1200

1150

1010

2800

1500

1200

1100

1550

1600

1550

1380

1070

3200

1500

1550

1600

1550

1600

1600

1600

1550

3600

1480

1500

1550

1510

1430

1300

1200

980

通过此题对最近邻点插值、双线性插值方法和双三次插值方法的插值效果进行比较。

相似题目

3.2、数据拟合练习题

3、多项式拟合方法

分别用多项式拟合的方法,在不同阶次下 拟合 函数y=(x2-3x+5)e-5xsinx中给出的数据。

该数据的三次多项式拟合:

>> x0=0:0.1:1; y0=(x0.^2-3*x0+5).*exp(-5*x0).*sin(x0);

>> p3=polyfit(x0,y0,3); vpa(poly2sym(p3),10)

ans =

2.839962923*x^3-4.789842696*x^2+1.943211631*x+.5975248921e-1

绘制拟合曲线:

>> x=0:0.01:1; ya=(x.^2-3*x+5).*exp(-5*x).*sin(x);

>> y1=polyval(p3,x); plot(x,y1,x,ya,x0,y0,'o')

>>p6=polyfit(x0,y0,6); y2=polyval(p6,x);

>>vpa(poly2sym(p6),10)

就不同的次数进行拟合:

>> p4=polyfit(x0,y0,4); y2=polyval(p4,x);

>> p5=polyfit(x0,y0,5); y3=polyval(p5,x);

>> p8=polyfit(x0,y0,8); y4=polyval(p8,x);

拟合最高次数为8的多项式:

>> vpa(poly2sym(p8),5)

ans =

-8.2586*x^8+43.566*x^7-101.98*x^6+140.22*x^5-125.29*x^4+74.450*x^3-27.672*x^2+4.9869*x+.42037e-6

Taylor幂级数展开:

>> syms x; y=(x^2-3*x+5)*exp(-5*x)*sin(x);

>> vpa(taylor(y,9),5)

ans =

5.*x-28.*x^2+77.667*x^3-142.*x^4+192.17*x^5-204.96*x^6+179.13*x^7-131.67*x^8  

4、非线性最小二乘拟合获得待定系数

由下面语句生成一组数据,其中ai为待定系数。

>> x=0:.1:10;

>> y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x);

并且该数据满足y(x)=a1*exp(-a2*x)+a3exp(-a4*x)*sin(a5*x)采用非线性最小二乘拟合获得待定系数,使得目标函数的值最小。

2、编写函数:

>> f=inline('a(1)*exp(-a(2)*x)+a(3)*exp(-a(4)*x).*sin(a(5)*x)','a','x');

>> [xx,res]=lsqcurvefit(f,[1,1,1,1,1],x,y);

>>xx'

>>res

输出结果:

Optimization terminated successfully:

 Relative function value changing by less than OPTIONS.TolFun

ans =

    0.1197

    0.2125

    0.5404

    0.1702

    1.2300

res =

  7.1637e-007

修改最优化选项:

>> ff=optimset; ff.TolFun=1e-20; ff.TolX=1e-15; % 修改精度限制

>> [xx,res]=lsqcurvefit(f,[1,1,1,1,1],x,y,[],[],ff); xx',res

Optimization terminated successfully:

 Relative function value changing by less than OPTIONS.TolFun

ans =

    0.1200

    0.2130

    0.5400

    0.1700

    1.2300

res =

  9.5035e-021

绘制曲线:

>> x1=0:0.01:10; y1=f(xx,x1); plot(x1,y1,x,y,'o')