数学建模拟合实验报告 下载本文

数学建模拟合报告

一、 实验名称

1. 2.

了解拟合基本内容并用数学软件求解拟合问题。。 用MATLAB解层次分析法中把旅游问题的权向量

二、 实验目的

1. 2. 3.

学会使用曲线拟合的最小二乘法,加深对曲线拟合最小二乘法的理解

掌握函数ployfit和函数lsqcurvefit功能和使用方法,学会使用分别用这两个函数进行多项式拟合和非线性拟合。

掌握旅游决策问题中用层次分析法计算出权向量,最大特征根和一致性指标

三、 实验原理

1. 2. 3.

最小二乘法 线性拟合命令ployfit

非线性拟合命令lsqcurvefit、lsqnonlin,plot函数等

四、 实验内容.

1.

用给定的多项式,如y=x3-6x2+5x-3,产生一组数据(xi,yi,i=1,2,…,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用xi和添加了随机干扰的yi作的3次多项式拟合,与原系数比较。如果作2或4次多项式拟合,结果如何?

程序如下:

rands(1,21) x0=0:0.1:2;

y0=x0.^3-6*x0.^2+5*x0-3;

yy0=y0+rands(1,21); a3=polyfit(x0,yy0,3); x=0:0.1:2;

yy=x.^3-6*x.^2+5*x-3; yy3=polyval(a3,x); plot(x,yy3,x,yy,x0,y0,'ro'); title('图1-1')

legend('3次拟合图','原始函数图','分布点图'); figure(2)

a2=polyfit(x0,yy0,2); yy2=polyval(a2,x); plot(x,yy2,x,yy,x,yy3); title('图1-2')

legend('二次拟合图','原始函数图', '3次拟合图'); a4=polyfit(x0,yy0,4); yy4=polyval(a4,x); figure(3)

plot(x,yy4,x,yy,x,yy3); title('图1-3')

legend('4次拟合图','原始函数图','3次拟合图 ');

运行程序图像结果为图1-1,1-2,1-3,计算结果为:

ans =

1 至 16 列

-0.0997 -0.0825 0.3239 0.5406 -0.2996 0.3240 -0.1677 0.6839 0.6658 -0.4871 0.2269 0.1645 0.0815 0.7399 -0.4704 -0.3639

17 至 21 列

-0.7616 0.8797 0.2911 -0.0411 0.2786 将原代码中x=0:0.1:2;改为x=0:0.5:10;得到下列结果: ans =

1 至 16 列

-0.7274 0.3573 -0.0096 -0.6206 -0.0100 -0.7048 -0.8901 0.7014 0.1211 0.8592 0.3933 0.1656 0.6308 0.7580 0.9778 -0.9990

17 至 21 列

0.7309 0.2251 0.9799 0.0554 -0.0410

可以发现,当0

2.

用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为

v(t)?V?(V?V0)e?,其中V0是电容器的初始电压,?是充电常数。试由下面一

- 1 -

?t组t,V数据确定V0,? t (秒) 0.5 1 2 3 4 5 7 V (伏) 6.36 6.48 7.26 8.22 8.66 8.99 9.43 程序如下:

先创建一个M文件,程序为: function f=fin (x,t);

f=10-(10-x(1))*exp(-t/x(2)); %x(1)=V0;x(2)=τ

保存后再在命令窗口中输入下列程序: t=[0.5,1,2,3,4,5,7,9];

V=[6.36,6.48,7.26,8.22,8.66,8.99,9.43,9.63]; x0=[0.2,0.05];

x=lsqcurvefit('fin',x0,t,V) f=fin(x,t)

运行程序结果为

x =

5.5577 3.5002 f =

6.1490 6.6616 7.4913 8.1147 8.5832 8.9353 9.6604

即初始电压为V0=5.5577,充电常数为τ=3.5002 程序实现如图2-1

3.

矩阵A=[1 1/2 4 3 3;2 1 7 5 5;1/4 1/7 1 1/2 1/3;1/3 1/5 2 1 1;1/3 1/5 3 1 1],B1=[1 2 5;1/2 1 2;1/5 1/2 1], B2=[1 1/3 1/8;3 1 1/3;8 3 1], B3=[1 1 3;1 1 3;1/3 1/3 1], B4=[1 3 4;1/3 1 1;1/4 1 1], B5=[1 1 1/4;1 1 1/4;4 4 1],

求其权向量?,最大特征根?。

程序如下:

先创建一个M文件,程序为:

function fun(A)

RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51]; b=sum(A); ones(size(b')); t=ones(size(b'))*b; c=A./t;

d=sum(c'); e=sum(d');

- 2 -

9 9.63 9.3987