Python 在matlab中求解方程组:2个微分方程组,1个二次方程组
编写Matlab(或其他)代码,用于数值求解系统: w’(t)=dw(t)/dtPython 在matlab中求解方程组:2个微分方程组,1个二次方程组,python,matlab,wolfram-mathematica,Python,Matlab,Wolfram Mathematica,编写Matlab(或其他)代码,用于数值求解系统: w’(t)=dw(t)/dt 我不知道如何使用ode45来解决这个问题,因为t有两个解。为什么需要用数字来解决这个问题?对于数值解,您至少需要一个初始条件,即w(0),y0) 请注意,通过比较前两个方程:8w'(t)=3y'(t) 然后,推导第三个方程,以获得: 2t=w'(t)+y'(t) 这意味着: 8*3*2t=8*3*w'(t)+8*3*y'(t) 48t=8*3*w'(t)+8*8*w'(t) 48t=88*w'(t) 6t=11*w
我不知道如何使用ode45来解决这个问题,因为t有两个解。为什么需要用数字来解决这个问题?对于数值解,您至少需要一个初始条件,即
w(0),y0)
请注意,通过比较前两个方程:8w'(t)=3y'(t)
然后,推导第三个方程,以获得:
2t=w'(t)+y'(t)
这意味着:
8*3*2t=8*3*w'(t)+8*3*y'(t)
48t=8*3*w'(t)+8*8*w'(t)
48t=88*w'(t)
6t=11*w'(t)
因此w'(0)=0
和y'(0)=0
因此,从第一个方程:w(0)*y(0)=0
因为方程是对称的,所以正如你提到的,有两个解。假设w(0)=0,然后从第三个等式‘y(0)=-9’。从6t=11*w'(t)
我们得到w(t)=(6/11)t
,和y(t)=-9+(48/33)t
另一个解决方案是
y(t)=(6/11)t
,和w(t)=-9+(48/33)t
,这些方程只是我需要的一个例子,实际上,我有38个方程,我需要一种方法将它们插入ode45或类似的,它们不能解析求解,我有初始条件,但我不知道如何处理[t0 tf]因为t本身是一个变量,我需要在这些系统中求解,为什么时间是一个要求解的变量?通过设置tspan=[0,1]
,您可以开始学习如何使用ode45
?也许以后你可以用一些数值方法来计算你的时间跨度。我试图计算两个自由旋转和移动的椭球碰撞的时间,然后将tspan
设置为从0开始,以某个已知的猜测数结束。使用后处理例程检查椭球体是否发生碰撞,如果椭球体没有碰撞,但正在接近,则增加时间并模拟/积分从先前猜测到下一个猜测的方程。如果椭球正在分开,中止循环并得出它们永远不会碰撞的结论。我可以使用ode45 options=odeset('events',h(t,s))并测试椭球是否在检查中碰撞吗?
w'(t)=3*w(t)*y(t),
y'(t)=8*w(t)*y(t),
t^2=9+w(t)+y(t)