python - 求解方程组:matlab中的2个微分,1个二次
问题描述
编写一个 Matlab(或其他)代码来求解系统数值:w'(t)=dw(t)/dt;
w'(t)=3*w(t)*y(t),
y'(t)=8*w(t)*y(t),
t^2=9+w(t)+y(t)
我不知道如何为此使用 ode45,因为 t 有 2 个解决方案。
解决方案
为什么你需要用数字来解决这个问题?对于数值解,您至少需要一个初始条件,即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
。
推荐阅读
- java - 无法使用 @Autowired 创建 bean
- haskell - `MonadWidget` 如何适合`WidgetFor`?
- java - 上一年的同一天(上一年、同一周和一周中的某一天)
- python - 为熊猫数据框中的每个组添加第一行
- python-3.x - tensorflow-gpu / keras中多个独立模型的并行化
- php - 图书馆门户的链接共享
- python - Python:使用标题写入 csv
- ios - Retrieving JSON String in Decodable decode function
- javascript - 找不到模块:错误:无法解析“dropzone”
- python - 如何找到代理的工作列表并在它们不在 Python 中工作时跳过它们