matlab怎样过原点作直线拟合要求截距为零的强制过原点线性拟合如果是这样一组数据,怎样弄呢?x=[132.63 275.08 458.4 722.24 868.01]y=[2.53 5.32 8.75 13.805 16.56]
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 15:03:48
matlab怎样过原点作直线拟合要求截距为零的强制过原点线性拟合如果是这样一组数据,怎样弄呢?x=[132.63 275.08 458.4 722.24 868.01]y=[2.53 5.32 8.75 13.805 16.56]
matlab怎样过原点作直线拟合
要求截距为零的强制过原点线性拟合
如果是这样一组数据,怎样弄呢?
x=[132.63 275.08 458.4 722.24 868.01]
y=[2.53 5.32 8.75 13.805 16.56]
matlab怎样过原点作直线拟合要求截距为零的强制过原点线性拟合如果是这样一组数据,怎样弄呢?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)])
设拟合的直线为y=kx
k=∑XY / ∑X^2
>> k=y/x;
>> yy=k*x;
>> plot(x,y,'r*',x,yy) %红点为原始数据,蓝线为拟合直线
选择matlab中的左下角start——toolboxes——curve fitting——curve fitting tool,要是全告诉你也不好说,之后的事情就靠你自己去学了。