练习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习题相关推荐

  1. matlab 现代信号处理,The-first-matlab-exercise 清华大学张旭东老师现代信号处理第一次matlab习题 - 下载 - 搜珍网...

    第一次MATLAB习题/ 第一次MATLAB习题/习题一/ 第一次MATLAB习题/习题一/信号源1/ 第一次MATLAB习题/习题一/信号源1/MyDirac.m 第一次MATLAB习题/习题一/信 ...

  2. matlab全下标方式取出,matlab习题

    matlab习题 1.标点符号; 可以使命令行不显示运算结果,% 用来表示该行为注释行. 2.x为0-4pi,步长为0.1pi的向量,使用命令x=0:0.1*pi:4*pi 创建. 4.输入矩阵A=, ...

  3. 两个充电宝能互充电吗_国人鬼才设计,手掌大智能芯片充电宝能暖手、充电、补光镜三合一...

    国人鬼才设计,手掌大智能芯片充电宝能暖手.充电.补光镜三合一 随着冷空气的入侵,我国自北向南开启了「防寒模式」,按照朱广权的说法:冻得你脸上青一阵紫一阵白一阵,在你腮边画彩虹,你也只能翻出秋衣秋裤棉袄 ...

  4. matlab胡良剑第五章,MATLAB习题参考答案(胡良剑,孙晓君)

    MATLAB习题参考答案 第一章 MATLAB入门 4.求近似解 解:>> x=-2:0.05:2;y=x.^4-2.^x 两个近似解:y1=f(-0.85)= -0.0328; y2=f ...

  5. 天冷打字全靠抖?!桌面暖手宝,体验10s速热,温暖升级,冬天有TA就够了

    ▲点击查看 没有一丝丝防备,冷空气说来就来了~ 无论是寒风猛烈的北方,还是湿冷又没有暖气的南方,对于上班族来说,冬天最痛苦的事情莫过于哆哆嗦嗦在工位码字了! 冷风侵袭无处不在,备上个暖手袋,根本无法投 ...

  6. matlab wc wp,数字信号处理MATLAB习题.PDF

    数字信号处理MATLAB习题 数字信号处理MATLAB 习题 电气硕 72 李弘昌 第11 题 分别用脉冲响应不变法和双线性变换法设计一个巴特沃斯型IIR 低通数字滤波器,采样 频率 ,其通带边频 处 ...

  7. 156 13.67用matlab答案,MATLAB习题答案

    <MATLAB习题答案>由会员分享,可在线阅读,更多相关<MATLAB习题答案(10页珍藏版)>请在装配图网上搜索. 1.习题二1. 如何理解"矩阵是MATLAB最基 ...

  8. matlab7.x答案,MATLAB习题及参考答案

    <MATLAB习题及参考答案>由会员分享,可在线阅读,更多相关<MATLAB习题及参考答案(14页珍藏版)>请在人人文库网上搜索. 1.习题:1, 计算与的数组乘积.2, 对于 ...

  9. matlab oj,Matlab习题(1)

    <Matlab习题(1)>由会员分享,可在线阅读,更多相关<Matlab习题(1)(46页珍藏版)>请在人人文库网上搜索. 1.习题 l1 执行下列指令, 观 察其运算 结果, ...

  10. matlab2018a课后答案,[2018年最新整理]matlab习题及答案.doc

    [2018年最新整理]matlab习题及答案 第一章习题 ??????? 1.1?? 试概述闭环调速系统的主要特点.改变给定电压是否能够改变电动机的转速?为什么?如果给定电压不变,调整反馈电压的分压比 ...

最新文章

  1. Proxool 连接池销毁问题
  2. algorithm头文件下的常用函数--习题
  3. element ui 前台模板_SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(二):引入 element-ui 定义基本页面显示...
  4. 刚刚,这几门保证就业的算法类课程,居然能免费听了!
  5. 链表面试题3:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成 的。
  6. DIY—USB学习板设计以及驱动开发
  7. java mysql emoj报错_MySQL插入emoji表情报错 SQLException: Incorrect string value 的两种解决方案...
  8. MybatisPlus_整合p6spy
  9. 计算机关机键 自动重启,电脑关机后自动重启怎么办?原因及解决方详解
  10. python 函数嵌套和嵌套调用
  11. linux 实时查看cpu温度
  12. shel脚本中批量替换文件名
  13. 用Python+Qt+Java整一个百宝箱
  14. 论OSPF中ASBR和ABR
  15. 企业的透视镜——新视角看财务费用报销管理 兴元X/3
  16. 图像处理(一):傅里叶变换简单讲解
  17. 《奇迹课程》练习手册
  18. 如何区分MOS管、三极管(从MOS管、三极管的结构方面理解)
  19. HTML的meta标签详解
  20. android vitamio框架,利用Vitamio框架来做自己的视频播放器

热门文章

  1. 积木创意:APP开发需要注意哪些事项?
  2. Redis 取消保护模式
  3. Jumpserver界面设置及界面功能
  4. 一键获取网易互娱内推攻略,快人一步拿offer!
  5. 1、玩转树莓派音频——DIY具有输入输出的声卡(非USB)
  6. 小程序UI框架minui
  7. AE学习笔记——第三章:动画制作基础1
  8. 需求提炼:产品需求、技术需求
  9. 基于群智能算法的函数最值优化问题
  10. 【C语言基础练习】百钱买百鸡问题。母鸡3元钱一只,小鸡1元钱三只,问100元钱要刚好买100只鸡,编程实现母鸡和小鸡各多少只?