- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2 / 19
第四讲:拟合算法
与插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟 合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所 有的数据点最为接近,即曲线拟合的最好(最小化损失函数)。
插值和拟合的区别
插值算法中,得到的多项式f(x)要经过所有样本点。但是如果样本点太多,那 么这个多项式次数过高,会造成龙格现象。
尽管我们可以选择分段的方法避免这种现象,但是更多时候我们更倾向于得到 一个确定的曲线,尽管这条曲线不能经过每一个样本点,但只要保证误差足够小即 可,这就是拟合的思想。
3 / 19
一个小例子
x
y
4.2
8.4
5.9
11.7
2.7
4.2
3.8
6.1
3.8
7.9
5.6
10.2
6.9
13.2
3.5
6.6
3.6
6
2.9
4.6
4.2
8.4
6.1
12
5.5
10.3
6.6
13.3
2.9
4.6
3.3
6.7
5.9
10.8
6
11.5
5.6
9.9
找出y和x之间的拟合曲线
数据文件:data1.xlsx
plot(x,y,o)
% 给x和y轴加上标签
xlabel(x的值)
ylabel(y的值)
4 / 19
代码文件:code1.m
注意:将数据导入到matlab时,我们是分别创建了两个变量:x和y,每个变量仅保存一列数据。
确定拟合曲线
5 / 19
最小二乘法的几何解释
第一种定义有绝对值,不容易求导,因此计算比较复杂。 所以我们往往使用第二种定义,这也正是最小二乘的思想。
6 / 19
求解最小二乘法
7 / 19
Matlab求解最小二乘
clear;clc load data1 plot(x,y,o)
% 给x和y轴加上标签
xlabel(x的值)
ylabel(y的值)
n = size(x,1);
k = (n*sum(x.*y)-sum(x)*sum(y))
/(n*sum(x.*x)-sum(x)*sum(x))
b = (sum(x.*x)*sum(y)-sum(x)*
sum(x.*y))/(n*sum(x.*x)-sum(x)
*sum(x))
hold on % 继续在之前的图形上来画图形
grid on % 显示网格线
f=@(x) k*x+b;
fplot(f,[min(x)-1,max(x)+1]);
legend(样本数据,拟合函数,location,SouthEast)
代码文件:code1.m
8 / 19
如何评价拟合的好坏
9 / 19
证明SST = SSE + SSR
10 / 19
计算拟合优度的代码
y_hat
= k*x+b; % y的拟合值
SSR =
sum((y_hat-mean(y)).^2)
% 回归平方和
SSE =
sum((y_hat-y).^2) %
误差平方和
SST =
sum((y-mean(y)).^2) %
总体平方和
SST-SSE-SSR R_2 = SSR / SST
注:
mean()是求均值的函数。
代码文件:code1.m
11 / 19
强大的曲线拟合工具箱
低版本的Matlab可以在命令窗口中直接输入”cftool”
12 / 19
拟合工具箱演示
13 / 19
14 / 19
自己模拟数据进行演示
(1)randi : 产生均匀分布的随机整数
%产生一个1至10之间的随机矩阵,大小为2x5; s1 = randi(10,2,5);
%产生一个-5至5之间的随机矩阵,大小为1x10; s2 = randi([-5,5],1,10);
(2) rand: 产生均匀分布的随机数
%产生一个0至1之间的随机矩阵,大小为1x5; s3 = rand(1,5);
%产生一个a至b之间的随机矩阵,大小为1x5;
% a + (b-a) * rand(1,5); 如 :a,b = 2,5
s4= 2 + (5-2) * rand(1,5);
normrnd:产生正态分布的随机数
%产生一个均值为0,标准差为2的正态分布的随机矩阵,大小为3x4; s5 = normrnd(0,2,3,4);
roundn—任意位位置四舍五入
a = 3.1415
% ans = 3.1400
% ans = 0
roundn(a,-2) roundn(a,2) a =31415
roundn(a,2)
% ans = 31400
代码文件:code2.m
自己模拟数据进行演示
代码文件:code3.m
15 / 19
优秀论文中的cftool运用
[2016年国赛高教杯奖D题]蚌埠士官学院‐风电场运行状况分析及优化研究.pdf
16 / 19
优秀论文中的cftool运用
淡水养殖池塘华发生及自净化研究.pdf
17 / 19
注意:这里不要用
文档评论(0)