作业帮 > 综合 > 作业

matlab中用for 循环+条件语句求值:

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 05:03:37
matlab中用for 循环+条件语句求值:
for a=0:.001:15;
if(49.82418*cos(a.*pi./180.)+2768.01.*sin(a.*pi./180.)==650);disp(a);
end;
end;
为什么结果总为15.我用笔算大概在12、13左右
你的条件语句中
49.82418*cos(a.*pi./180.)+2768.01.*sin(a.*pi./180.)==650
这个的逻辑值应该永远是假,那么程序肯定相当于
for a=0:.001:15;
if(0);disp(a);
end;
end;
那最后的结果肯定是a=15
那么为什么你的条件的逻辑值是假,显然是计算的截断误差了,所以你应该设置一个阈值theta
49.82418*cos(a.*pi./180.)+2768.01.*sin(a.*pi./180.)==650
这个条件改为:
(49.82418*cos(a.*pi./180.)+2768.01.*sin(a.*pi./180.)>650-theta)&(49.82418*cos(a.*pi./180.)+2768.01.*sin(a.*pi./180.)