为什么同样的MATLAB程序在不同的电脑里运行结果会不一样
clc;%清屏n=input('请输入实验数据的组数n=');disp('请输入n组加速度值和质量值');fori=1:na(i)=input('a=');M(i)=in...
clc;%清屏
n=input('请输入实验数据的组数n=');
disp('请输入n组加速度值和质量值');
for i=1:n
a(i)=input('a=');
M(i)=input('M=') ;
f_a(i)=1/a(i);
f_M(i)=M(i);
end
ave_x=0;ave_y=0;ave_x2=0;ave_y2=0;ave_xy=0;%利用最小二乘法求未知参数A,B及相关因子
for i=1:n
ave_x=ave_x+f_a(i);
ave_y=ave_y+f_M(i);
ave_x2=ave_x2+f_a(i)*f_a(i);
ave_y2=ave_y2+f_M(i)*f_M(i);
ave_xy=ave_xy+f_a(i)*f_M(i);
end
ave_x=ave_x/n;
ave_y=ave_y/n;
ave_x2=ave_x2/n;
ave_y2=ave_y2/n;
ave_xy=ave_xy/n;
A=(ave_xy*ave_x-ave_x2*ave_y)/(ave_x*ave_x-ave_x2);
B=(ave_x*ave_y-ave_xy)/(ave_x*ave_x-ave_x2);
r=(ave_xy-ave_x*ave_y)/sqrt((ave_x2-ave_x*ave_x)*(ave_y2-ave_y*ave_y));
disp('M=A+B/a')
A,B,r %显示参数值A,B及相关因子r
for i=1:n
Plot(a(i),A+B/a(i),'r+')
hold on
end
a=0.3:0.6;
plot(a,exp(A+B./a));
title('质量与加速度的关系曲线')
xlabel('a/ ');ylabel('M/g');
这个程序运行出来结果不同,一个电脑里是曲线分布,而另一个是各个点都在横坐标上,我注意了一下,两个结果的区别在纵坐标的取值上,但是同样的程序为什么会不同? 展开
n=input('请输入实验数据的组数n=');
disp('请输入n组加速度值和质量值');
for i=1:n
a(i)=input('a=');
M(i)=input('M=') ;
f_a(i)=1/a(i);
f_M(i)=M(i);
end
ave_x=0;ave_y=0;ave_x2=0;ave_y2=0;ave_xy=0;%利用最小二乘法求未知参数A,B及相关因子
for i=1:n
ave_x=ave_x+f_a(i);
ave_y=ave_y+f_M(i);
ave_x2=ave_x2+f_a(i)*f_a(i);
ave_y2=ave_y2+f_M(i)*f_M(i);
ave_xy=ave_xy+f_a(i)*f_M(i);
end
ave_x=ave_x/n;
ave_y=ave_y/n;
ave_x2=ave_x2/n;
ave_y2=ave_y2/n;
ave_xy=ave_xy/n;
A=(ave_xy*ave_x-ave_x2*ave_y)/(ave_x*ave_x-ave_x2);
B=(ave_x*ave_y-ave_xy)/(ave_x*ave_x-ave_x2);
r=(ave_xy-ave_x*ave_y)/sqrt((ave_x2-ave_x*ave_x)*(ave_y2-ave_y*ave_y));
disp('M=A+B/a')
A,B,r %显示参数值A,B及相关因子r
for i=1:n
Plot(a(i),A+B/a(i),'r+')
hold on
end
a=0.3:0.6;
plot(a,exp(A+B./a));
title('质量与加速度的关系曲线')
xlabel('a/ ');ylabel('M/g');
这个程序运行出来结果不同,一个电脑里是曲线分布,而另一个是各个点都在横坐标上,我注意了一下,两个结果的区别在纵坐标的取值上,但是同样的程序为什么会不同? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询