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

matlab 最小二乘法拟合直线,横坐标是x=0.01:0.01:1;m=log(x);纵坐标是for i=1:100;y(i)=log((2^0.5)*(x(i)+1)/(x(i)*x(i)+2*x(i))^0.5);end求拟合,m,y并求拟合出来的直线斜率.速速速!

题目详情
matlab 最小二乘法拟合直线,
横坐标是x=0.01:0.01:1;
m=log(x);
纵坐标是
for i=1:100;
y(i)=log((2^0.5)*(x(i)+1)/(x(i)*x(i)+2*x(i))^0.5);
end
求拟合,m,y
并求拟合出来的直线斜率.速速速!
▼优质解答
答案和解析
首先确认一下,你这的log是以10为底的对数吧?那么命令如下.(如果是以e为底就不用除以log(10)了,自己改一下.)
>> x=0.01:0.01:1;
>> m=log(x)/log(10);
>>for i=1:100;
y(i)=log((2^0.5)*(x(i)+1)/(x(i)*x(i)+2*x(i))^0.5)/log(10);
end
>>plot(m,y,'r');hold on;
>>p = polyfit(m,y,1)%这个就是拟合的函数
p =
-0.3600 0.4161
>>pp=poly2sym(p);
>>ezplot(pp,[-2,0]);
红色的是原曲线,蓝色的是拟合直线.拟合直线的斜率就是-0.3600