循环-物理非线性重力和加速度

12个视图(30天)
哈利中士
哈利中士 2020年4月5日
评论道: 詹姆斯Tursa 2020年4月6日
我只是想知道如果任何人都可以帮助我了解迭代循环。我一直试图循环变化的加速度值依赖于方程“g = (400000000 / (6371 + h) ^ 2”)在时间t和输出速度的一组高度然而自从高度变化是由于物体靠近地球重力的影响下我确定如何循环两个重力和高度对时间变化值。我一直挣扎在这几天,我不知道要做什么,非常感谢任何帮助
下面的代码(我肯定错误的在大多数方面)
m = 0;
csa = 0;
s = 0;
u = 0;
v = 0;
t = 0;
dt = 0;
= * t;
h = 0;
g = (400000000 / (6371 + h) ^ 2);
Qnumb =(问题1,找到V, T);
disp(提示);
质量=('什么是航天器的质量(公斤)?”);
m =输入(质量);
iVelocity =('什么是航天器的初始速度(米/秒)?”);
u =输入(iVelocity);
iHeight =(“初始宇宙飞船的高度是什么(公里)?”);
h =输入(iHeight);
他=(“什么是理想的宇宙飞船的高度(公里)?”);
他=输入(他);
i = 1;
虽然他> = 0
dt = 2 * v (i + 1) * sin (a) / g;
dt = (v (i + 1) / (i + 1);
t (i + 1) = t(我)+ dt;
h (i + 1) = h (i) - (v (i) * dt);
如果他> = 100
g (i + 1) = (400000000 / (6371 + h) ^ 2);
g (i) = g (i + 1);
v (i + 1) = (1) + (g (i + 1) * dt);
结束
结束
disp (v (i + 1))
1评论
哈利中士
哈利中士 2020年4月5日
dt的一部分代码是完全错误的,我已经删除了加速度值循环然而它使检索错误消息说明指数超过矩阵维度是不清楚的我没有使用一个矩阵,我只是想找到速度和时间的设置值h = (userinput)是模拟的起始位置150公里对一个非线性重力值基于上面所示的方程。

登录置评。

答案(1)

詹姆斯Tursa
詹姆斯Tursa 2020年4月5日
编辑:詹姆斯Tursa 2020年4月6日
当前的问题是,h是一个矢量,所以这句话的右手边是一个向量:
g (i + 1) = (400000000 / (6371 + h) ^ 2);
同样的问题与这条语句,因为g是一个向量:
dt = 2 * v (i + 1) * sin (a) / g;
你在代码中有一个标量和向量和它看起来像你的代码不相符。
我建议你分离变量的初始条件和向量结果来帮助保持笔直。例如,
h0 =初始高度
v0 =初始速度
那么你的改变值的向量
t =时间向量
h =身高向量有时t
在t v =你的速度矢量在次
在t g =你的重力向量乘以
你的身高和速度矢量的初始化代码
h (1) = h0;
(1)= v0;
i = 1;
大纲的基本循环代码就会看起来像这样:
h (i) > 0
dt =什么
g (i) =一些表达式涉及h(我)%计算加速度(应该是消极的)
v (i + 1) = (1) + g * dt(我);%更新速度
h (i + 1) = h (i) + v (i) * dt;%更新高度
t (i + 1) = t(我)+ dt;%更新时间
我=我+ 1;
结束
如果有条件,在循环变化(例如,降落伞打开),那么你可以插入到上面的循环逻辑。
8的评论
詹姆斯Tursa
詹姆斯Tursa 2020年4月6日
v (i + 1) = u (i) + g * dt(我);%更新速度
需要这个
v (i + 1) = (1) + g * dt(我);%更新速度
你应该更新的未来价值v v的当前值,而不是你的当前值。

登录置评。

类别

找到更多的在循环和条件语句帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的