Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在matlab中求解方程组:2个微分方程组,1个二次方程组_Python_Matlab_Wolfram Mathematica - Fatal编程技术网

Python 在matlab中求解方程组:2个微分方程组,1个二次方程组

Python 在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

编写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'(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)