我正在尝试写一个Fortran 90程序来执行Euler的方法,使用自适应的时间步长来求解常微分方程。我在do while循环中有一条if语句,在该语句中,我检查代码的每次迭代的误差是否小于一定的容差。但是,如果它不小于某个公差,我必须更改某个值(步长),并再次执行计算,以得到一个新的误差,并与公差进行比较。它看起来像(请原谅,这是我第一次使用这个网站):
do
无论如何,我的问题如下: 举个例子,我有下面的微分方程: function f(du, u, t) du[2] = u[4] du[4] = -u[2] - u[1]^2 + u[2]^2
end 我有一个回调,每次轨迹穿过y轴时都会触发: function condition(u我知道可以通过使用以下效果来终止集成: function affect!
我正在做这个弹跳球的问题,我得到了这个公式:(速度) vx =v0*cos(角度)。和(x位置)x=v0*cos(角度)*t。然而,我不能让球正确地反弹。问题是,在球击中右侧垂直墙后,它开始在窗口右侧的某个范围内反弹。(在这种情况下,y和vy应该不重要。)我如何解决这个奇怪的弹跳问题,使其在x方向上弹跳属性? Timer tm = new Timer(60, this); //this refers to the ActionL