matlab两次算出来的值不一样,是为什么>> h=5;H=15;a=4;>> m=1;>> y=2.*(atan((h+H)./a)-atan(h./a)).*(1+1./4*(1./m.^2+1)+9./64.*(1./m.^2+1).^2+1./10.*(1./m.^2+1).^3)/sqrt(1./m.^2+1)+2.*(atan((h+H)./m.*a)-atan(h./a.*m)).*(1+1./(4.*(m.^2+1))+9.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 11:44:09
matlab两次算出来的值不一样,是为什么>> h=5;H=15;a=4;>> m=1;>> y=2.*(atan((h+H)./a)-atan(h./a)).*(1+1./4*(1./m.^2+1)+9./64.*(1./m.^2+1).^2+1./10.*(1./m.^2+1).^3)/sqrt(1./m.^2+1)+2.*(atan((h+H)./m.*a)-atan(h./a.*m)).*(1+1./(4.*(m.^2+1))+9.
matlab两次算出来的值不一样,是为什么
>> h=5;H=15;a=4;
>> m=1;
>> y=2.*(atan((h+H)./a)-atan(h./a)).*(1+1./4*(1./m.^2+1)+9./64.*(1./m.^2+1).^2+1./10.*(1./m.^2+1).^3)/sqrt(1./m.^2+1)+2.*(atan((h+H)./m.*a)-atan(h./a.*m)).*(1+1./(4.*(m.^2+1))+9./(64.*(m.^2+1).^2)+1./(10.*(m.^2+1).^3))./sqrt(m.^2+1);
>> y
y =
3.0306
>> clear
>> m=1
m =
1
>> y=2.*(atan(5)-atan(1.25)).*(1+1./4*(1./m.^2+1)+9./64.*(1./m.^2+1).^2+1./10.*(1./m.^2+1).^3)/sqrt(1./m.^2+1)+2.*(atan(5./m)-atan(1.25./m)).*(1+1./(4.*(m.^2+1))+9./(64.*(m.^2+1).^2)+1./(10.*(m.^2+1).^3))./sqrt(m.^2+1);
>> y
y =
2.7240
>>
>> clear
>> m=1
m =
1
>> y=2.*(atan(5)-atan(1.25)).*(1+1./4*(1./m.^2+1)+9./64.*(1./m.^2+1).^2+1./10.*(1./m.^2+1).^3)/sqrt(1./m.^2+1)+2.*(atan(5./m)-atan(1.25./m)).*(1+1./(4.*(m.^2+1))+9./(64.*(m.^2+1).^2)+1./(10.*(m.^2+1).^3))./sqrt(m.^2+1);
>> y
y =
2.7240 此时,当m=1时,Y为2.7240
再次输入以下>> clear
>> m=0.1:0.01:3;
>> y=2.*(atan(5)-atan(1.25)).*(1+1./4*(1./m.^2+1)+9./64.*(1./m.^2+1).^2+1./10.*(1./m.^2+1).^3)/sqrt(1./m.^2+1)+2.*(atan(5./m)-atan(1.25./m)).*(1+1./(4.*(m.^2+1))+9./(64.*(m.^2+1).^2)+1./(10.*(m.^2+1).^3))./sqrt(m.^2+1);
>> plot(m,y),后却发现y只有1.7361左右,这是为什么呢
matlab两次算出来的值不一样,是为什么>> h=5;H=15;a=4;>> m=1;>> y=2.*(atan((h+H)./a)-atan(h./a)).*(1+1./4*(1./m.^2+1)+9./64.*(1./m.^2+1).^2+1./10.*(1./m.^2+1).^3)/sqrt(1./m.^2+1)+2.*(atan((h+H)./m.*a)-atan(h./a.*m)).*(1+1./(4.*(m.^2+1))+9.
1,多大括号,任何优先级别有问题的地方都打上括号
2,如果是常数,不需要用点乘,点除
3,多先变量吧,死不了人
4,可读性》程序的优化
以上是一个看你的代码头疼的人,给你几项建议.
还搞不定,
单不调试.
还有你上面这么多数值计算,输入不同,不同的格式输入,他的舍入法是服不同?