[英]How can I plot a differential equation in python?
我想绘制微分方程的解,但是我得到了:
' ValueError:x和y必须具有相同的第一尺寸,但形状为(360,)和(1,) '
当我写_plt.plot(t,final[:1])_
我得到了
“ 平等对象不可下标 ”
声明。
这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
from sympy.abc import *
import sympy as sy
L= float(input('L:'))
R= float(input('R:'))
v=220*sy.sqrt(2)
i=sy.Function('i')
q=sy.dsolve(sy.Eq(sy.Derivative(i(t)*L,t)+i(t)*R,v*sy.sin(t)),i(t)).evalf()
constant=sy.solve(q.subs(i(t),0),dict=True)
t=np.linspace(0,360,360)
final=q.subs(constant[0]).evalf()
plt.plot(t,final)
plt.show()
我该怎么办?
从代码中可以明显看出t
具有360个元素
t=np.linspace(0,360,360)
该错误说明final
具有1的初始维,因此应像t
一样为360。 虽然final
可能具有(1,)形状(1个元素,包含另一个数组或列表),但更可能是(1,n)。
出现shape
错误时,您需要查看相关数组的形状,
print(final.shape, final.dtype)
然后从中确定调整形状的正确方法。
plot
可以处理第二个参数(360,m),其中m
是它应该绘制的线数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.