早教吧 育儿知识 作业答案 考试题库 百科 知识分享

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)])