4-1 拟合算法

插值算法和拟合算法差别
1.最小二乘法
就是找到一条曲线,使它离相对应的实际点的距离的平方和都很接近。

一般不采取距离的绝对值之和 因为不好求导,不便计算。
代码分析:
clear;clc
load data1 plot(x,y,‘o’) % 给x和y轴加上标签
xlabel(‘x的值’) %自变量名
ylabel(‘y的值’) %因变量名
n = size(x,1); %n个数据
k = (n*sum(x.*y)-sum(x)sum(y)) /(nsum(x.*x)-sum(x)*sum(x))
b = (sum(x.*x)sum(y)-sum(x) sum(x.y))/(nsum(x.*x)-sum(x) sum(x)) hold on % 继续在之前的图形上来画图形
grid on % 显示网格线
f=@(x) k
x+b;
fplot(f,[2.5,7]);
legend(‘样本数据’,‘拟合函数’,‘location’,‘SouthEast’)

在这里插入图片描述
线性函数定义:能通过变量代换换成一次函数的形式的都是线性(如y=ax1+bx2+c)

代码:
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) % 总体平方和
R_2 = SSR / SST
注: mean() 是求均值的函数。

画图可以用拟合工具箱:cftcool(可在命令窗口中直接输入调出
图片来自清风老师
(排版乱七八糟的…将就看看…

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页