【暖手练习】MATLAB习题
练习1:插值&拟合
题目:
有如下数据点:
x | -2 | -1.7 | -1.4 | -1.1 | -0.8 | -0.5 | -0.2 | 0.1 |
y | 0.1029 | 0.1174 | 0.1316 | 0.1448 | 0.1566 | 0.1662 | 0.1733 | 0.1775 |
x | 0.4 | 0.7 | 1 | 1.3 | 1.6 | 1.9 | 2.2 | 2.5 |
y | 0.1785 | 0.1764 | 0.1711 | 0.1630 | 0.1526 | 0.1402 | 0.1266 | 0.1122 |
x | 2.8 | 3.1 | 3.4 | 3.7 | 4 | 4.3 | 4.6 | 4.9 |
y | 0.0977 | 0.0835 | 0.0702 | 0.0588 | 0.0479 | 0.0373 | 0.0291 | 0.0224 |
1. 根据数据点试用不同的插值方法绘制曲线;
2. 试用最小二乘多项式拟合方法拟合表中数据,选择一个能较好拟合数据点的多项式阶次,给出相应的多项式系数;
3. 若表中的数据满足正态分布密度函数,试用最小二乘非线性拟合方法求出分布参数和的值,并绘制拟合曲线,观察拟合效果;
问题1:
%yi=interp1(x,y,new_x,'method')
%'method'可为'linear'、'nearest'、'next'、'previous'、'pchip'、'cubic'、'v5cubic'、'makima' 或 'spline'。默认方法为 'linear'。
clear;clc;
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];
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];
new_x=-2:0.01:4.9;
subplot(2,2,1);
plot(x,y,'r.','Markersize',20);
hold on;
y1=interp1(x,y,new_x,'linear');
plot(new_x,y1,'b');
title('线性插值');subplot(2,2,2);
plot(x,y,'r.','Markersize',20);
hold on;
y2=interp1(x,y,new_x,'nearest');
plot(new_x,y2,'g');
title('最邻近插值');subplot(2,2,3);
plot(x,y,'r.','Markersize',20);
hold on;
y3=interp1(x,y,new_x,'pchip');
plot(new_x,y3,'c');
title('三次埃尔米特插值');subplot(2,2,4);
plot(x,y,'r.','Markersize',20);
hold on;
y4=interp1(x,y,new_x,'spline');
plot(new_x,y4,'k');
title('三次样条插值');%legend('样本点','线性插值','最邻近插值','埃尔米特插值','三次样条插值')
图示为:
问题2:
% polyfit(x,y,n)多项式拟合
% x,y为向量,n为拟合阶数
clear;clc;
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];
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];
plot(x,y,'r.','Markersize',20);
hold on;p2=polyfit(x,y,2);
y2=p2(1)*x.^2+p2(2)*x+p2(3);
plot(x,y2);
hold on;p3=polyfit(x,y,3);
y3=p3(1)*x.^3+p3(2)*x.^2+p3(3)*x+p3(4);
plot(x,y3)
hold on;p4=polyfit(x,y,4);
y4=p4(1)*x.^4+p4(2)*x.^3+p4(3)*x.^2+p4(4)*x+p4(5);
plot(x,y4)
hold on;p5=polyfit(x,y,5);
y5=p5(1)*x.^5+p5(2)*x.^4+p5(3)*x.^3+p5(4)*x.^2+p5(5)*x+p5(6);
plot(x,y5)
hold on;legend('样本点','二阶多项式插值','三阶多项式插值','四阶多项式插值','五阶多项式插值');
图示如下:
如图,经过观察,随着多项式阶数的提高,拟合效果也在不断提高。五阶多项式插值的效果已经非常好,并且可以通过计算进行验证:
SSE=0;
SST=0;
for i=1:24SSE=SSE+(y5(i)-y(i))^2;SST=SST+(y(i)-mean(y))^2;
end
R_squre=1-SSE/SST;
disp(['五阶多项式拟合R^2为',num2str(R_squre)])
输出结果为:
接下来输出五阶多项式的系数:
for j=1:6k=6-j;disp([num2str(k),'次项系数为:',num2str(p5(j))]);
end
输出结果为:
问题3:
syms t;
f=fittype('1/(sqrt(2*pi)*sigma)*exp(-(t-mu)^2/(2*sigma^2))','independent','t','coefficients',{'mu','sigma'});%%
% f=fittype('拟合的方程','independent','自变量','coefficients',{'未知参数1','未知参数2'});
%% 这里的用符号t代替了x的位置% [cfun,rsquare]=fit(x',y',f); 保存拟合结果和拟合效果p=fit(x',y',f);
% p保存拟合结果
% x,y为行向量,需要转置
clear;clc;
syms t;
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];
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];f=fittype('1/(sqrt(2*pi)*sigma)*exp(-(t-mu)^2/(2*sigma^2))','independent','t','coefficients',{'mu','sigma'});
%[cfun,rsquare]=fit(x',y',f);
p=fit(x',y',f);
plot(p,x,y);
输出结果为:
因此参数值分别为:
练习2:整数规划
题目:
分配甲、乙、丙、丁四人去完成五项任务,每人完成各项任务的时间如下表所示。由于任务数多于人数,故规定其中有一个人可完成两项任务,其余三人每人只完成一项任务。试确定总花费时间最少的分配任务方案。
A | B | C | D | E | |
甲 | 9 | 2 | 4 | 15 | 9 |
乙 | 6 | 5 | 12 | 4 | 2 |
丙 | 11 | 7 | 13 | 4 | 17 |
丁 | 19 | 11 | 15 | 8 | 9 |
求解与代码实现:
根据题目要求,可以得到目标函数和约束条件如下:
其中为各人不同任务的花费时间:
代码实现如下:
% [x,fval] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)
% 求解整数规划,调整约束条件,可转为0-1规划
% f :目标函数的系数矩阵
% intcon :整数所在位置
% A :不等式约束的变量系数矩阵
% b :不等式约束的资源数
% Aeq :等式约束的变量系数矩阵
% beq :等式约束的资源数
% lb :变量约束下限
% ub :变量约束上限
clear;clc;
f = [9 2 4 15 9 6 5 12 4 2 11 7 13 4 17 19 11 15 8 9];
ic = 1 : length(f);
A1 = zeros(4,length(f));for i = 1:4for j = (5*i-4):(5*i)A1(i,j) = 1;end
endA2 = -1*A1;
A = [A1; A2];
b = [2;2;2;2;-1;-1;-1;-1];Aeq = zeros(4,length(f));
for i = 1:4for j = i:5:(5*i+1)Aeq(i,j) = 1;end
endbeq = [1;1;1;1];
lb = zeros(length(f),1);
ub = ones(length(f),1);
[x,fval] = intlinprog(f,ic,A,b,Aeq,beq,lb,ub);disp('最终计划为:')
disp(find(x))
disp('最优目标函数值为:')
disp(fval)
输出结果为:
此时对应分配方案为:
甲 | 任务B、任务C |
乙 | 任务A |
丙 | 任务D |
丁 | 任务E |
最短时间为:
练习3:评价类模型
题目:
某部队即将换装步枪,因个人作战目的不同,选择的强制会不同,那么如何选择步枪?
可供选择的步枪有:步枪A、步枪B、步枪C
影响选择枪支的因素有:作战目的、杀伤力、作战距离、后坐力、换弹速度等
(1). 试建立层次分析模型
(2). 给出步枪A、步枪B、步枪C对作战距离的成对比较矩阵,求出最大特征根,相应的归一化特征向量,并进行一致性检验(暂略)
问题1:
评价目标:选择最合适的步枪
备选方案:步枪A、步枪B、步枪C
属性集合:作战目的(假设有三种:a,b,c)、杀伤力X1、作战距离X2、后坐力X3、换弹速度X4
针对不同作战目的,各属性有不同的权重:
权重 | 杀伤力X1 | 作战距离X2 | 后坐力X3 | 换弹速度X4 |
作战目的a | 0.2 | 0.1 | 0.3 | 0.4 |
作战目的b | 0.25 | 0.35 | 0.2 | 0.2 |
作战目的c | 0.4 | 0.2 | 0.3 | 0.1 |
三种步枪的针对不同属性的判断矩阵为:
杀伤力X1 | 步枪A | 步枪B | 步枪C |
步枪A | 1 | 1/2 | 3 |
步枪B | 2 | 1 | 6 |
步枪C | 1/3 | 1/6 | 1 |
作战距离X2 | 步枪A | 步枪B | 步枪C |
步枪A | 1 | 1/3 | 1/4 |
步枪B | 3 | 1 | 3/4 |
步枪C | 4 | 4/3 | 1 |
后坐力X3 | 步枪A | 步枪B | 步枪C |
步枪A | 1 | 5 | 2 |
步枪B | 1/5 | 1 | 2/5 |
步枪C | 1/2 | 5/2 | 1 |
换弹速度X4 | 步枪A | 步枪B | 步枪C |
步枪A | 1 | 3 | 1/4 |
步枪B | 1/3 | 1 | 1/12 |
步枪C | 4 | 12 | 1 |
根据上述矩阵,采用最简单的算数平均法求得权重:
X1 | X2 | X3 | X4 | |
步枪A | 0.3 | 0.125 | 0.5882 | 0.1875 |
步枪B | 0.6 | 0.375 | 0.1176 | 0.0625 |
步枪C | 0.1 | 0.5 | 0.2941 | 0.75 |
根据权重矩阵,并结合不同目的对应的属性权重计算三种步枪在三种目的下的得分:
权重 | 杀伤力X1 | 作战距离X2 | 后坐力X3 | 换弹速度X4 |
作战目的a | 0.2 | 0.1 | 0.3 | 0.4 |
作战目的b | 0.25 | 0.35 | 0.2 | 0.2 |
作战目的c | 0.4 | 0.2 | 0.3 | 0.1 |
得分 | 步枪A | 步枪B | 步枪C | 最终选择 |
作战目的a | 0.32396 | 0.21778 | 0.45823 | C |
作战目的b | 0.27389 | 0.31727 | 0.40882 | C |
作战目的c | 0.34021 | 0.35653 | 0.30323 | B |
问题2(略):
【暖手练习】MATLAB习题相关推荐
- matlab 现代信号处理,The-first-matlab-exercise 清华大学张旭东老师现代信号处理第一次matlab习题 - 下载 - 搜珍网...
第一次MATLAB习题/ 第一次MATLAB习题/习题一/ 第一次MATLAB习题/习题一/信号源1/ 第一次MATLAB习题/习题一/信号源1/MyDirac.m 第一次MATLAB习题/习题一/信 ...
- matlab全下标方式取出,matlab习题
matlab习题 1.标点符号; 可以使命令行不显示运算结果,% 用来表示该行为注释行. 2.x为0-4pi,步长为0.1pi的向量,使用命令x=0:0.1*pi:4*pi 创建. 4.输入矩阵A=, ...
- 两个充电宝能互充电吗_国人鬼才设计,手掌大智能芯片充电宝能暖手、充电、补光镜三合一...
国人鬼才设计,手掌大智能芯片充电宝能暖手.充电.补光镜三合一 随着冷空气的入侵,我国自北向南开启了「防寒模式」,按照朱广权的说法:冻得你脸上青一阵紫一阵白一阵,在你腮边画彩虹,你也只能翻出秋衣秋裤棉袄 ...
- matlab胡良剑第五章,MATLAB习题参考答案(胡良剑,孙晓君)
MATLAB习题参考答案 第一章 MATLAB入门 4.求近似解 解:>> x=-2:0.05:2;y=x.^4-2.^x 两个近似解:y1=f(-0.85)= -0.0328; y2=f ...
- 天冷打字全靠抖?!桌面暖手宝,体验10s速热,温暖升级,冬天有TA就够了
▲点击查看 没有一丝丝防备,冷空气说来就来了~ 无论是寒风猛烈的北方,还是湿冷又没有暖气的南方,对于上班族来说,冬天最痛苦的事情莫过于哆哆嗦嗦在工位码字了! 冷风侵袭无处不在,备上个暖手袋,根本无法投 ...
- matlab wc wp,数字信号处理MATLAB习题.PDF
数字信号处理MATLAB习题 数字信号处理MATLAB 习题 电气硕 72 李弘昌 第11 题 分别用脉冲响应不变法和双线性变换法设计一个巴特沃斯型IIR 低通数字滤波器,采样 频率 ,其通带边频 处 ...
- 156 13.67用matlab答案,MATLAB习题答案
<MATLAB习题答案>由会员分享,可在线阅读,更多相关<MATLAB习题答案(10页珍藏版)>请在装配图网上搜索. 1.习题二1. 如何理解"矩阵是MATLAB最基 ...
- matlab7.x答案,MATLAB习题及参考答案
<MATLAB习题及参考答案>由会员分享,可在线阅读,更多相关<MATLAB习题及参考答案(14页珍藏版)>请在人人文库网上搜索. 1.习题:1, 计算与的数组乘积.2, 对于 ...
- matlab oj,Matlab习题(1)
<Matlab习题(1)>由会员分享,可在线阅读,更多相关<Matlab习题(1)(46页珍藏版)>请在人人文库网上搜索. 1.习题 l1 执行下列指令, 观 察其运算 结果, ...
- matlab2018a课后答案,[2018年最新整理]matlab习题及答案.doc
[2018年最新整理]matlab习题及答案 第一章习题 ??????? 1.1?? 试概述闭环调速系统的主要特点.改变给定电压是否能够改变电动机的转速?为什么?如果给定电压不变,调整反馈电压的分压比 ...
最新文章
- Proxool 连接池销毁问题
- algorithm头文件下的常用函数--习题
- element ui 前台模板_SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(二):引入 element-ui 定义基本页面显示...
- 刚刚,这几门保证就业的算法类课程,居然能免费听了!
- 链表面试题3:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成 的。
- DIY—USB学习板设计以及驱动开发
- java mysql emoj报错_MySQL插入emoji表情报错 SQLException: Incorrect string value 的两种解决方案...
- MybatisPlus_整合p6spy
- 计算机关机键 自动重启,电脑关机后自动重启怎么办?原因及解决方详解
- python 函数嵌套和嵌套调用
- linux 实时查看cpu温度
- shel脚本中批量替换文件名
- 用Python+Qt+Java整一个百宝箱
- 论OSPF中ASBR和ABR
- 企业的透视镜——新视角看财务费用报销管理 兴元X/3
- 图像处理(一):傅里叶变换简单讲解
- 《奇迹课程》练习手册
- 如何区分MOS管、三极管(从MOS管、三极管的结构方面理解)
- HTML的meta标签详解
- android vitamio框架,利用Vitamio框架来做自己的视频播放器