当前位置:   article > 正文

【暖手练习】MATLAB习题_matlab练习

matlab练习

练习1:插值&拟合

题目:

有如下数据点:

x-2-1.7-1.4-1.1-0.8-0.5-0.20.1
y0.10290.11740.13160.14480.15660.16620.17330.1775
x0.40.711.31.61.92.22.5
y0.17850.17640.17110.16300.15260.14020.12660.1122
x2.83.13.43.744.34.64.9
y0.09770.08350.07020.05880.04790.03730.02910.0224

1. 根据数据点试用不同的插值方法绘制曲线;

2. 试用最小二乘多项式拟合方法拟合表中数据,选择一个能较好拟合数据点的多项式阶次,给出相应的多项式系数;

3. 若表中的数据满足正态分布密度函数y=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}},试用最小二乘非线性拟合方法求出分布参数\mu\sigma的值,并绘制拟合曲线,观察拟合效果;

问题1:

  1. %yi=interp1(x,y,new_x,'method')
  2. %'method'可为'linear''nearest''next''previous''pchip''cubic''v5cubic''makima''spline'。默认方法为 'linear'
  1. clear;clc;
  2. x=[-2 -1.7 -1.4 -1.1 -0.8 -0.5 -0.2 0.1 0.4 0.7 1 1.3 1.6 1.9 2.2 2.5 2.8 3.1 3.4 3.7 4 4.3 4.6 4.9];
  3. y=[0.1029 0.1174 0.1316 0.1448 0.1566 0.1662 0.1733 0.1775 0.1785 0.1764 0.1711 0.1630 0.1526 0.1402 0.1266 0.1122 0.0977 0.0835 0.0702 0.0588 0.0479 0.0373 0.0291 0.0224];
  4. new_x=-2:0.01:4.9;
  5. subplot(2,2,1);
  6. plot(x,y,'r.','Markersize',20);
  7. hold on;
  8. y1=interp1(x,y,new_x,'linear');
  9. plot(new_x,y1,'b');
  10. title('线性插值');
  11. subplot(2,2,2);
  12. plot(x,y,'r.','Markersize',20);
  13. hold on;
  14. y2=interp1(x,y,new_x,'nearest');
  15. plot(new_x,y2,'g');
  16. title('最邻近插值');
  17. subplot(2,2,3);
  18. plot(x,y,'r.','Markersize',20);
  19. hold on;
  20. y3=interp1(x,y,new_x,'pchip');
  21. plot(new_x,y3,'c');
  22. title('三次埃尔米特插值');
  23. subplot(2,2,4);
  24. plot(x,y,'r.','Markersize',20);
  25. hold on;
  26. y4=interp1(x,y,new_x,'spline');
  27. plot(new_x,y4,'k');
  28. title('三次样条插值');
  29. %legend('样本点','线性插值','最邻近插值','埃尔米特插值','三次样条插值')

图示为:

问题2:

  1. % polyfit(x,y,n)多项式拟合
  2. % x,y为向量,n为拟合阶数
  1. clear;clc;
  2. x=[-2 -1.7 -1.4 -1.1 -0.8 -0.5 -0.2 0.1 0.4 0.7 1 1.3 1.6 1.9 2.2 2.5 2.8 3.1 3.4 3.7 4 4.3 4.6 4.9];
  3. y=[0.1029 0.1174 0.1316 0.1448 0.1566 0.1662 0.1733 0.1775 0.1785 0.1764 0.1711 0.1630 0.1526 0.1402 0.1266 0.1122 0.0977 0.0835 0.0702 0.0588 0.0479 0.0373 0.0291 0.0224];
  4. plot(x,y,'r.','Markersize',20);
  5. hold on;
  6. p2=polyfit(x,y,2);
  7. y2=p2(1)*x.^2+p2(2)*x+p2(3);
  8. plot(x,y2);
  9. hold on;
  10. p3=polyfit(x,y,3);
  11. y3=p3(1)*x.^3+p3(2)*x.^2+p3(3)*x+p3(4);
  12. plot(x,y3)
  13. hold on;
  14. p4=polyfit(x,y,4);
  15. y4=p4(1)*x.^4+p4(2)*x.^3+p4(3)*x.^2+p4(4)*x+p4(5);
  16. plot(x,y4)
  17. hold on;
  18. p5=polyfit(x,y,5);
  19. y5=p5(1)*x.^5+p5(2)*x.^4+p5(3)*x.^3+p5(4)*x.^2+p5(5)*x+p5(6);
  20. plot(x,y5)
  21. hold on;
  22. legend('样本点','二阶多项式插值','三阶多项式插值','四阶多项式插值','五阶多项式插值');

图示如下:

 如图,经过观察,随着多项式阶数的提高,拟合效果也在不断提高。五阶多项式插值的效果已经非常好,并且可以通过计算R^2进行验证:

  1. SSE=0;
  2. SST=0;
  3. for i=1:24
  4. SSE=SSE+(y5(i)-y(i))^2;
  5. SST=SST+(y(i)-mean(y))^2;
  6. end
  7. R_squre=1-SSE/SST;
  8. disp(['五阶多项式拟合R^2为',num2str(R_squre)])

输出结果为:

 接下来输出五阶多项式的系数:

  1. for j=1:6
  2. k=6-j;
  3. disp([num2str(k),'次项系数为:',num2str(p5(j))]);
  4. end

输出结果为:

 问题3:

  1. syms t;
  2. f=fittype('1/(sqrt(2*pi)*sigma)*exp(-(t-mu)^2/(2*sigma^2))','independent','t','coefficients',{'mu','sigma'});
  3. %%
  4. % f=fittype('拟合的方程','independent','自变量','coefficients',{'未知参数1','未知参数2'});
  5. %% 这里的用符号t代替了x的位置
  6. % [cfun,rsquare]=fit(x',y',f); 保存拟合结果和拟合效果
  7. p=fit(x',y',f);
  8. % p保存拟合结果
  9. % x,y为行向量,需要转置
  1. clear;clc;
  2. syms t;
  3. x=[-2 -1.7 -1.4 -1.1 -0.8 -0.5 -0.2 0.1 0.4 0.7 1 1.3 1.6 1.9 2.2 2.5 2.8 3.1 3.4 3.7 4 4.3 4.6 4.9];
  4. y=[0.1029 0.1174 0.1316 0.1448 0.1566 0.1662 0.1733 0.1775 0.1785 0.1764 0.1711 0.1630 0.1526 0.1402 0.1266 0.1122 0.0977 0.0835 0.0702 0.0588 0.0479 0.0373 0.0291 0.0224];
  5. f=fittype('1/(sqrt(2*pi)*sigma)*exp(-(t-mu)^2/(2*sigma^2))','independent','t','coefficients',{'mu','sigma'});
  6. %[cfun,rsquare]=fit(x',y',f);
  7. p=fit(x',y',f);
  8. plot(p,x,y);

输出结果为:

因此参数值分别为:

\mu=0.3483

\sigma=2.235

练习2:整数规划

题目:

分配甲、乙、丙、丁四人去完成五项任务,每人完成各项任务的时间如下表所示。由于任务数多于人数,故规定其中有一个人可完成两项任务,其余三人每人只完成一项任务。试确定总花费时间最少的分配任务方案。

ABCDE
924159
651242
11713417
19111589

求解与代码实现:

根据题目要求,可以得到目标函数和约束条件如下:

minW=i=14j=15aijxij

s.t.{aij=0,1(i=1,2,3,4,j=1,2,3,4,5)i=14aij=1(j=1,2,3,4,5)j=15aij2(i=1,2,3,4)j=15aij1(i=1,2,3,4)i=14j=15aij=5

其中xij为各人不同任务的花费时间:

代码实现如下:

  1. % [x,fval] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)
  2. % 求解整数规划,调整约束条件,可转为0-1规划
  3. % f :目标函数的系数矩阵
  4. % intcon :整数所在位置
  5. % A :不等式约束的变量系数矩阵
  6. % b :不等式约束的资源数
  7. % Aeq :等式约束的变量系数矩阵
  8. % beq :等式约束的资源数
  9. % lb :变量约束下限
  10. % ub :变量约束上限
  1. clear;clc;
  2. f = [9 2 4 15 9 6 5 12 4 2 11 7 13 4 17 19 11 15 8 9];
  3. ic = 1 : length(f);
  4. A1 = zeros(4,length(f));
  5. for i = 1:4
  6. for j = (5*i-4):(5*i)
  7. A1(i,j) = 1;
  8. end
  9. end
  10. A2 = -1*A1;
  11. A = [A1; A2];
  12. b = [2;2;2;2;-1;-1;-1;-1];
  13. Aeq = zeros(4,length(f));
  14. for i = 1:4
  15. for j = i:5:(5*i+1)
  16. Aeq(i,j) = 1;
  17. end
  18. end
  19. beq = [1;1;1;1];
  20. lb = zeros(length(f),1);
  21. ub = ones(length(f),1);
  22. [x,fval] = intlinprog(f,ic,A,b,Aeq,beq,lb,ub);
  23. disp('最终计划为:')
  24. disp(find(x))
  25. disp('最优目标函数值为:')
  26. disp(fval)

输出结果为:

此时对应分配方案为:

任务B、任务C
任务A
任务D
任务E

最短时间为:W=25

练习3:评价类模型

题目:

某部队即将换装步枪,因个人作战目的不同,选择的强制会不同,那么如何选择步枪?

可供选择的步枪有:步枪A、步枪B、步枪C

影响选择枪支的因素有:作战目的、杀伤力、作战距离、后坐力、换弹速度等

(1). 试建立层次分析模型

(2). 给出步枪A、步枪B、步枪C对作战距离的成对比较矩阵,求出最大特征根,相应的归一化特征向量,并进行一致性检验(暂略)

问题1:

评价目标:选择最合适的步枪

备选方案:步枪A、步枪B、步枪C

属性集合:作战目的(假设有三种:a,b,c)、杀伤力X1、作战距离X2、后坐力X3、换弹速度X4

针对不同作战目的,各属性有不同的权重:

权重杀伤力X1作战距离X2后坐力X3换弹速度X4
作战目的a0.20.10.30.4
作战目的b0.250.350.20.2
作战目的c0.40.20.30.1

三种步枪的针对不同属性的判断矩阵为:

杀伤力X1步枪A步枪B步枪C
步枪A11/23
步枪B216
步枪C1/31/61
作战距离X2步枪A步枪B步枪C
步枪A11/31/4
步枪B313/4
步枪C44/31
后坐力X3步枪A步枪B步枪C
步枪A152
步枪B1/512/5
步枪C1/25/21
换弹速度X4步枪A步枪B步枪C
步枪A131/4
步枪B1/311/12
步枪C4121

根据上述矩阵,采用最简单的算数平均法求得权重:

X1X2X3X4
步枪A0.30.1250.58820.1875
步枪B0.60.3750.11760.0625
步枪C0.10.50.29410.75

根据权重矩阵,并结合不同目的对应的属性权重计算三种步枪在三种目的下的得分:

权重杀伤力X1作战距离X2后坐力X3换弹速度X4
作战目的a0.20.10.30.4
作战目的b0.250.350.20.2
作战目的c0.40.20.30.1
得分步枪A步枪B步枪C最终选择
作战目的a0.323960.217780.45823C
作战目的b0.273890.317270.40882C
作战目的c0.340210.356530.30323B

问题2(略):

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/822502
推荐阅读
相关标签
  

闽ICP备14008679号