matlab怎样过原点作直线拟合
来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/11/13 00:44:36
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]
%
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)])