Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-03, 03:59   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 使用“平分线法”(Bisector Method)查找两个角度,它们给出了弹丸的相同水平距离,

我有一个问题,关于如何编写代码以找到两个角度,使弹丸可以在90米处射击。我有一个函数,用问题的给定变量计算水平距离。如果您想象一个在x轴上具有从0d到90d的角度以及与该角度相对应的水平角度的图形,则会得到一个抛物线。我有两个角度,它们之间的距离为90 m。我需要使用平分线法来找到这两个角度。

我针对这个问题的第一种方法是:

V0 = 45; Starting Velocity Cd = 0.5; Coefficient of Drag mass = 0.145; Mass of Ball area = 42; Area of Ball tstep = 0.005; Time Step start = 0; Starting Angle finish = 90; Ending Angle a = 1; % My error script to count for the while loop while a > 0.05 left = start; right = finish; mid = (left + right)/2; % Calculation for the mid point during iterations YL = ballistic(left, V0, Cd, mass, area, tstep, plotting); YR = ballistic(right, V0, Cd, mass, area, tstep, plotting); Ymid = ballistic(mid, V0, Cd, mass, area, tstep, plotting); if YL < 90 left = mid; elseif Ymid < 90 left = mid; a = abs(Ymid - 90); end theta = mid; maxdist = Ymid; end 对于上述变量,我将使用一个称为弹道的函数来计算在给定角度下获得的距离。现在,对于第一个角度,我将有一个while循环,对于第二个角度,我将有一个while循环,计算左距离和右距离,并找到平均值。根据错误的结果(a),它将再次执行该操作,直到找到角度为止,但是它对我不起作用和/或不知道如何编写if语句构造。我能帮我写这段代码吗?另外,我对MatLab还是陌生的,所以我将尽可能多地了解如何解决此问题。我想我处于一个我不知道该写什么或如何写我所想的地方。

角度与水平距离图

谢谢



更多&回答...
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 03:23


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.