polyfit和regress拟合曲线及最小二乘法原理

regress 

regress 函数:regress 是 MATLAB 中用于进行普通最小二乘线性回归的函数,用于拟合具有线性关系的数据。该函数的语法为:

[beta, sigma, r, rint, stats] = regress(Y, X);
clc,clear all;
% 数据准备
data=xlsread("副本赛题数据.xlsx");
Y = data(:,15);   % 因变量(高考总分)
zk_zf = data(:,9);   % 自变量(中考总分)
schtype = data(:,3);   % 自变量(学校类型)

% 设置回归模型
X = [zk_zf, schtype];   % 自变量矩阵
X = [ones(size(X, 1), 1) X];   % 添加常数项列

% 执行回归分析
[beta, sigma, r, rint, stats] = regress(Y, X);

% Y 是因变量的数据向量或矩阵。
% X 是自变量的数据矩阵,每一列对应一个自变量。
% beta 是估计的回归系数向量。
% sigma 是估计的误差标准差。
% r 是相关系数矩阵。
% rint 是回归系数的置信区间。
% stats 是统计信息结构体,包含了回归模型的各种统计值。


% 输出回归系数
intercept = beta(1);   % 常数项系数
coef_zk_zf = beta(2);   % zk_zf的系数
coef_schtype = beta(3);   % schtype的系数

% 打印回归结果
fprintf('Y = %.3f + %.3f * zk_zf + %.3f * schtype\n', intercept, coef_zk_zf, coef_schtype)

现有一个excel表格名为副本赛题数据,我们要拟合一个因变量和两个自变量关系,可先构建自变量矩阵,然后使用regress拟合,这里 intercept, coef_zk_zf, coef_schtype即变量

最小二乘法原理

已上面表格数据为例,根据学校类型和中考成绩来预测高考成绩

 

 

 

polyfit

polyfit 函数:polyfit 函数也是 MATLAB 中的函数,用于拟合多项式回归模型。

clc,clear all;
% 假设你有一组离散数据的横坐标X和纵坐标Y
X = [1 2 3 4 5];
Y = [5 9 6 8 10];

% 进行二次曲线拟合
degree = 2; % 二次多项式
coefficients = polyfit(X, Y, degree);

% 构造二次多项式函数
fun = @(x) polyval(coefficients, x);

% 生成拟合曲线的横坐标
x_fit = linspace(min(X), max(X), 100);

% 计算拟合曲线的纵坐标
y_fit = fun(x_fit);

% 绘制原始数据和拟合曲线
figure;
plot(X, Y, 'bo-', 'LineWidth', 2); % 原始数据
hold on;
plot(x_fit, y_fit, 'r-', 'LineWidth', 2); % 拟合曲线
legend('原始数据', '拟合曲线');
xlabel('X');
ylabel('Y');
title('曲线拟合');

使用polyfit进行二次曲线拟合,然后使用 polyval计算预测值,最后画图

polyval 函数:polyval 用于计算多项式的值,可以在给定自变量的情况下计算多项式回归模型的预测值。该函数的语法为:

y_pred = polyval(p, x);
  • p 是一个向量,包含多项式回归模型的系数。
  • x 是自变量的数据向量。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值