数学建模拟合实验报告.docx
《数学建模拟合实验报告.docx》由会员分享,可在线阅读,更多相关《数学建模拟合实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
数学建模拟合实验报告
数学建模拟合报告
一、实验名称
1.了解拟合根本内容并用数学软件求解拟合问题。
。
2.用MATLAB解层次分析法中把旅游问题的权向量
二、实验目的
1.学会使用曲线拟合的最小二乘法,加深对曲线拟合最小二乘法的理解
2.掌握函数ployfit和函数lsqcurvefit功能和使用方法,学会使用分别用这两个函数进展多项式拟合和非线性拟合。
3.掌握旅游决策问题中用层次分析法计算出权向量,最大特征根和一致性指标
三、实验原理
1.最小二乘法
2.线性拟合命令ployfit
3.非线性拟合命令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.08250.32390.5406-0.29960.3240-0.16770.68390.6658-0.48710.22690.16450.08150.7399-0.4704-0.3639
17至21列
-0.76160.87970.2911-0.04110.2786
将原代码中x=0:
0.1:
2;改为x=0:
0.5:
10;得到以下结果:
ans=
1至16列
-0.72740.3573-0.0096-0.6206-0.0100-0.7048-0.89010.70140.12110.85920.39330.16560.63080.75800.9778-0.9990
17至21列
0.73090.22510.97990.0554-0.0410
可以发现,当0即大X围内取x比小X围内取x所得系数更加符合原常数。
而对图形来说,四次拟合比三次和二次更加符合原图形,即拟合次数越大,图形更加符合原图
2.用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为
,其中V0是电容器的初始电压,
是充电常数。
试由下面一组t,V数据确定V0,
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
程序如下:
先创立一个M文件,程序为:
functionf=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.55773.5002
f=
6.14906.66167.49138.11478.58328.93539.39879.6604
即初始电压为V0=5.5577,充电常数为τ=3.5002
程序实现如图2-1
3.矩阵A=[11/2433;21755;1/41/711/21/3;1/31/5211;1/31/5311],
B1=[125;1/212;1/51/21],
B2=[11/31/8;311/3;831],
B3=[113;113;1/31/31],
B4=[134;1/311;1/411],
B5=[111/4;111/4;441],
求其权向量
,最大特征根
。
程序如下:
先创立一个M文件,程序为:
functionfun(A)
RI=[000.580.901.121.241.321.411.451.491.51];
b=sum(A);
ones(size(b'));
t=ones(size(b'))*b;
c=A./t;
d=sum(c');
e=sum(d');
w=d'/e
n=length(w);
l=sum((A*w)./w)/n
CR=((l-n))/(n-1)/RI(n)
ifCR<0.1;
disp('容许')
elsedisp('不容许')
end
然后命令窗口输入:
A=[11/2433;21755;1/41/711/21/3;1/31/5211;1/31/5311];
fun(A)
运行程序结果为
w=
0.2623
0.4744
0.0545
0.0985
0.1103
l=
5.0729
CR=
0.0163
容许
意思为:
权向量为=[0.2623,0.4744,0.0545,0.0985,0.1103]’
最大特征根为=5.0729;
一致性比率为CR=0.0163;
A的不一致程度在容许X围之内
同理,输入程序如下:
B1=[125;1/212;1/51/21]
fun(B1);
B2=[11/31/8;311/3;831]
fun(B2);
B3=[113;113;1/31/31]
fun(B3);
B4=[134;1/311;1/411]
fun(B4);
B5=[111/4;111/4;441
fun(B5);
运行程序结果为:
B1=
1.00002.00005.0000
0.50001.00002.0000
0.20000.50001.0000
w=
0.5949
0.2766
0.1285
l=
3.0055
CR=
0.0048
容许
B2=
1.00000.33330.1250
3.00001.00000.3333
8.00003.00001.0000
w=
0.0820
0.2364
0.6816
l=
3.0015
CR=
0.0013
容许
B3=
1.00001.00003.0000
1.00001.00003.0000
0.33330.33331.0000
w=
0.4286
0.4286
0.1429
l=
3
CR=
0
容许
B4=
1.00003.00004.0000
0.33331.00001.0000
0.25001.00001.0000
w=
0.6327
0.1924
0.1749
l=
3.0092
CR=
0.0079
容许
即得到相应的权向量:
B1:
w1=w=[0.59490.27660.1285]’;
l=3.0055;CR=0.0048;容许;
B2:
w2=w=[0.08200.23640.6816]’;
l=3.0015;CR=0.0013;容许;
B3:
w3=w=[0.42860.42860.1429]’;
l=3;CR=0;容许;
B4:
w4=w=[0.63270.19240.1749]’;
l=3.0092;CR=0.0079;容许;
B5:
w5=w=[0.16670.16670.6667]’;
l=3;CR=0;容许;
令:
W=[w1;w2;w3;w4;w5]
w=[0.2623,0.4744,0.0545,0.0985,0.1103]’;
QZ=W*w
运用Matlab运算后得:
QZ=[0.2990;
0.2454;
0.4556]
由此可得方案P1、P2、P3的权重分别为0.2990、0.2454、0.4556,所以应该选择方案P3,即选择P3作为此次旅游地
五、实验结果
第1题在MATLAB中实现如图
〔1-1〕
〔1-2〕
〔1-3〕
六、总结与思考
在MATLAB的插值和拟合不封,所用的知识和程序都较为复杂,不熟练的我完成实验还需要消耗大量时间和精力,所以在实验过程中不应该心浮气躁,多于其他同学交流,吸取他们的成功或者失败的经历,尽量完成实验报告。
同时不要因为实验报告完成了就放松,自己以后也需要自行熟悉MATLAB的各种功能。