matlab怎样过原点作直线拟合
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/07/06 16:44:20
matlab怎样过原点作直线拟合
要求截距为零的强制过原点线性拟合
如果是这样一组数据,怎样弄呢?
x=[132.63 275.08 458.4 722.24 868.01]
y=[2.53 5.32 8.75 13.805 16.56]
要求截距为零的强制过原点线性拟合
如果是这样一组数据,怎样弄呢?
x=[132.63 275.08 458.4 722.24 868.01]
y=[2.53 5.32 8.75 13.805 16.56]
![matlab怎样过原点作直线拟合](/uploads/image/z/18222481-1-1.jpg?t=matlab%E6%80%8E%E6%A0%B7%E8%BF%87%E5%8E%9F%E7%82%B9%E4%BD%9C%E7%9B%B4%E7%BA%BF%E6%8B%9F%E5%90%88)
%
clc;clear;close;
%既然知道是线性的而且要过原点,
% 所以方程就是y=a*x的形式
x=[132.63 275.08 458.4 722.24 868.01];
y=[2.53 5.32 8.75 13.805 16.56];
func=inline('a*x','a','x');
a0=2;%fit的初始值
a=nlinfit(x,y,func,a0);%这个a就是斜率了
xf=linspace(min(0,min(x)),max(x),10);
yf=a*xf;
plot(x,y,'rs');%画原始数据
hold on
plot(xf,yf);%画拟合曲线
axis(1.1*[min(0,min(x)) 1.1*max(x) 1.1*min(0,min(y)) 1.1*max(yf)])
legend('原始数据','拟合曲线',2)
disp(['斜率= ' num2str(a)])
clc;clear;close;
%既然知道是线性的而且要过原点,
% 所以方程就是y=a*x的形式
x=[132.63 275.08 458.4 722.24 868.01];
y=[2.53 5.32 8.75 13.805 16.56];
func=inline('a*x','a','x');
a0=2;%fit的初始值
a=nlinfit(x,y,func,a0);%这个a就是斜率了
xf=linspace(min(0,min(x)),max(x),10);
yf=a*xf;
plot(x,y,'rs');%画原始数据
hold on
plot(xf,yf);%画拟合曲线
axis(1.1*[min(0,min(x)) 1.1*max(x) 1.1*min(0,min(y)) 1.1*max(yf)])
legend('原始数据','拟合曲线',2)
disp(['斜率= ' num2str(a)])