拟合算法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))/ (nsum(x. *x) -sum(sum(x) )

hold on %各继续在之前的图形.上来画图形

grid on %显示网格线

%% 画出y=kx+ b的函数图像plot(x,y)

%% 传统的画法: 模拟生成x和y的序列,比如要画出[0,5]上的图形

xx = 2.5:0.1 :7 %间隔设置的越小画出来的图形越准确

yy = k*xx+ b %k和b都是已知值

% plot(xx,yy,'-')

%匿名函数的基本用法。

% handle = @(arglist) anonymous. function

%其中handle为调用固名函数时使用的名字。

% arglist为匿名函数的输入参数,可以是一个, 也可以是多个,用逗号分隔。

% anonymous function为匿名函数的表达式。

%举个小例子

% z=@(x,y)x^2+y^2;

% z(1,2)

%% ans = 5

% fplot函数可用于画出匿名元函数的图形。

% fplot(f,xinterval)将匿名函数在指定区间xinterval绘图。xinterval 三[xmin xmax]表示定义域的范围

f=@(x) k*x+b;

fplot(f,[2,5,7]);

legend('样本数据','拟合函数','location','SouthEast')

y_ hat = k*x+b; % y的拟合值

SSR = sum(y hat mean).^2) %回归平方和

SSE = sum(y_ hat-y).^2) %误差平方和

SST = sum(y mean().^2) %总体平方和

SST-SSE-SSR %5.6843e-14 = 5.6843*10^-14

R_2 = SSR / SST

计算拟合优度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值