作业帮 > 综合 > 作业

matlab 做直线r=[8.22,7.41,6.58,5.49,5.20];u=[1.80,1.45,1.20,0.4

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/06/17 03:03:02
matlab 做直线
r=[8.22,7.41,6.58,5.49,5.20];
u=[1.80,1.45,1.20,0.43];
我想以r为x轴,u为y轴;
拟合一条直线,保证最多的点在这条直线上(或者点在这条直线周围均匀分布)
不好意思,漏了一个数据。不过关系不大,
[1]首先楼主你r,u不匹配(必须成对,也就是r,u元素个数一样多) 数据你可以自己随便更改
令y=a+bx是你要拟合的直线
请打开MATLAB,输入如下内容,逐行输入或者M-文件编辑都可以
x=[8.22,7.41,6.58,5.49,5.20];
y=[1.80,1.45,1.20,0.43,0.5];
r=x;
u=y;
b=(mean(x).*mean(y)-mean(dot(x,y)))./((mean(x))^2-mean(x.^2));
a=mean(y)-b.*mean(x);
在我这个数值下b = 24.1981 a = -158.1472
显然在楼主你更改数值以后结果会不同
划线可以用plot函数 plot(x,a+b.*x)
〔2〕原理是最小二乘法,任何一本高等数学书或者大学物理实验都有它的详细内容
〔3〕函数是自己编的,应该是一元线形回归(直线拟合)条件下通用的.