第7页PPT习题:

习题描述的是热电偶(thermo couple,简称 TC),随着温度变化输出线性毫伏(mV)信号的函数图像。

1. 找出拟合函数的β0 和 β1;

2. 画出拟合后的图像。

习题代码:

Temp = [20 30 40 50 60];
TC = [0.025 0.035 0.050 0.060 0.080];fit = polyfit( Temp,TC, 1);
xfit = (Temp(1):0.1:Temp(end));
yfit = fit(1)* xfit + fit(2);plot(Temp,TC,'ok',xfit,yfit);
legend({'data-point','best-fit'},'Location','northwest');
xlabel('Temperature(\circC)');
ylabel('TC output(mV)');
title('Calibration of TC');
set(gca,'XTick',20:10:60);
grid on;

运行截图:

代码解析:

对于线性函数的拟合,我们一般把它当做多项式的形式,例如本题:y = β0 * x + β1,其中x是温度,y是热电偶输出的电压。

1. 存储数据;

2. 使用polyfit()函数对x和y进行一阶拟合,得到的β0和β1会存储在我们自定义的fit变量中,其中fit(1)就是β0,fit(2)就是β1;

3. 接着我们定义拟合后的数据点;

xfit = (Temp(1):0.1:Temp(end));
yfit = fit(1)* xfit + fit(2);

4. 画出散点和拟合后的函数图像,图像的细节可以参考上文中的习题代码部分。

第10页PPT习题:

对题目中给定的x和y,分别画出它们的4阶、5阶和6阶的拟合图像。

习题代码:

x =[-1.2 -0.5 0.3 0.9 1.8 2.6 3.0 3.5];
y =[-15.6 -8.5 2.2 4.5 6.6 8.2 8.9 10.0];figure('Position', [50 50 1500 400]);
for i=4:7
subplot(1,4,i-3); p = polyfit(x,y,i);
xfit = x(1):0.1:x(end); yfit = polyval(p,xfit);
plot(x,y,'ro',xfit,yfit,'b'); set(gca,'FontSize',14);
ylim([-17, 11]);
legend({'Data points','Fitted curve'},'Location','southeast');
title([num2str(i), 'th-order polynomial']);
end

运行截图:

代码解析:

我们会发现,随着拟合阶数的提高,拟合曲线出现了震荡,从而影响预测的精度。

因此不是阶数越高,拟合的效果越好。

本题扩展:

对于线性拟合曲线阶数的确定,目前我能找到的方法是计算实际数据和拟合数据的残差平方和

残差和残差平方和的知识点https://baike.baidu.com/item/%E6%AE%8B%E5%B7%AE%E5%B9%B3%E6%96%B9%E5%92%8C/10586739?fr=aladdin

按照这个方法,我们就能够找出最优的阶数,代码如下:

x =[-1.2 -0.5 0.3 0.9 1.8 2.6 3.0 3.5];
y =[-15.6 -8.5 2.2 4.5 6.6 8.2 8.9 10.0];
%计算残差平方和
for i=1:100fit = polyfit(x,y,i);yfit = polyval(fit,x);if sum((yfit - y).^2)<0.001 %设置误差值为0.001,即残差平方和要小于设定的这个误差值bestOrder = i;break;end
end
fit = polyfit(x,y,bestOrder);
xfit = (x(1):0.1:x(end));
yfit = polyval(fit,xfit);
plot(x,y,'or',xfit,yfit,'b');
set(gca,'FontSize',14);
legend({'Data points','Fitted curve'},'Location','southeast');
title('Best order fitting');

运行截图:

第13页PPT习题:

习题代码:

load carsmall;
y = MPG; x1 = Weight; x2 = Horsepower;
X = [ones(length(x1),1) x1 x2 x1.^2 x2.^2 x1.*x2];
b = regress(y,X);
x1fit = min(x1):100:max(x1);
x2fit = min(x2):10:max(x2);
[X1FIT,X2FIT]=meshgrid(x1fit,x2fit);
YFIT=b(1) + b(2)*X1FIT + b(3)*X2FIT + b(4)*X1FIT.^2 + b(5)*X2FIT.^2 + b(6)*X1FIT.*X2FIT; %题目中给定的函数
scatter3(x1,x2,y,'filled'); %原始数据的散点图
hold on;
mesh(X1FIT,X2FIT,YFIT); hold off;
xlabel('Weight');
ylabel('Horsepower');
zlabel('MPG');
view(50,10); %观察视角
xlim([1000, 5000]);
ylim([0, 250]); 

运行截图:

MATLAB 郭彦甫 第十四课练习答案相关推荐

  1. 孙鑫mfc学习笔记第十四课

    第十四课 网络的相关知识,网络程序的编写,Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中创建,通过bind与驱动程序建立关系.此后,应用程序送给Socket的数据,由Sock ...

  2. NeHe OpenGL第二十四课:扩展

    NeHe OpenGL第二十四课:扩展 扩展,剪裁和TGA图像文件的加载: 在这一课里,你将学会如何读取你显卡支持的OpenGL的扩展,并在你指定的剪裁区域把它显示出来.   这个教程有一些难度,但它 ...

  3. 计算机病毒ppt教案免费,第十四课 计算机病毒 课件(共14张ppt)+教案

    第十四课 计算机病毒 课件(共14张ppt)+教案 ==================资料简介====================== 第十四课 计算机病毒 课件:14张PPT 第十四课 计算机 ...

  4. window.addeventlistener 不能调用方法_Java入门第十四课:如何定义”方法“

    第十四课,学习定义方法.一个对象包含三种最常见的成员:构造器.Field和方法.Field用于定义状态数据,而方法是行为特征的抽象. 那么什么是方法呢? 在Java中,方法就是用来完成解决某件事情或实 ...

  5. python dataframe 新列_Python第二十四课:Pandas库(四)

    Python第二十四课:Pandas库(四)点击上方"蓝字",关注我们. 不知不觉,我们已经跨越了千难万险,从零开始,一步步揭开了Python神秘的面纱.学到至今,回过头,才晓得自 ...

  6. NeHe OpenGL教程 第四十四课:3D光晕

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  7. NeHe OpenGL第四十四课:3D光晕

    NeHe OpenGL第四十四课:3D光晕 3D 光晕 当镜头对准太阳的时候就会出现这种效果,模拟它非常的简单,一点数学和纹理贴图就够了.好好看看吧.   大家好,欢迎来到新的一课,在这一课中我们将扩 ...

  8. 实践数据湖iceberg 第三十四课 基于数据湖icerberg的流批一体架构-流架构测试

    系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql ...

  9. 实践数据湖iceberg 第十四课 元数据合并(解决元数据随时间增加而元数据膨胀的问题)

    系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql ...

最新文章

  1. iphone怎么重启_苹果手机进入itunes怎么退出
  2. 第九章 思科竞争谋略
  3. 剑指offer 最小的k个数
  4. TypeScript里的类型合并操作符
  5. WPF 实现水纹效果
  6. c语言程序设计华北电力大学,2016年华北电力大学电气与电子工程学院C语言程序设计(同等学力加试)考研复试题库...
  7. myeclipse 下搭建测试环境
  8. 多个蓝牙缺陷可使攻击者假冒合法设备
  9. Mtlab之图形标注
  10. 奇异值分解(SVD) 的 几何意义
  11. 从0开始学习 GitHub 系列之「05.Git 进阶」
  12. 江小白包装设计原型_江小白的跨界营销,系列设计很“牛啤”!
  13. mysql 5.6 cmake 参数_编译cmake MySQL 5.6.10报错
  14. SAR图像变化检测的评价指标
  15. mysql ix is_关于MySQL中的共享锁(S)、排它锁(X)、意向共享锁(IS)、意向排它锁(IX)...
  16. [Swift]注册并购买加入Apple开发者计划。提示: “你的支付授权失败。请核对你的信息并重试,或尝试其他支付方式。请联系你的银行”...
  17. 如何制作启动U盘安装系统?
  18. stm32——中断优先级管理
  19. 关键词生成的相关资源
  20. linux 防火墙加固,Iptables 加固服务器安全

热门文章

  1. nodejs http调用报错:socket hang up
  2. 诺基亚C2-03 - 简单应优先处理的诺基亚C2-03
  3. 根轨迹的基本概念与绘制
  4. 编写选股公式、同花顺选股公式编写、编写涨停三阴线超短选股指标公式、编写选股公式...
  5. 关于Catalan(卡特兰)数的理解
  6. Java Long类型对比
  7. studio 热重载应用_热重载 (Hot reload)
  8. idea 远程debug调试
  9. Intellij Idea远程调试小记
  10. C++历史背景 [C++开发实战](边学边练哈 (#^.^#)~)