繁体   English   中英

如何在python中绘制微分方程?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM