我正在学习结构动力分析。我解决了一个问题:1个自由度
问题是M *y'' + cy' + ky = 900 sin(5.3x)m=6938.78, c=5129.907, k=379259, y为x的函数
我解决了它的响应使用Python和Sympy库。我用pyplot画出了响应。但它的形状不像下面那样光滑输入图片描述
我怎样才能画出流畅的响应?
我试图通过numpy替换每个x到y来平滑地绘制,但无法将x插入到sin(5.3 3x)中。
from sympy import *
import matplotlib.pyplot as plt
x, y=symbols("x, y")
f=symbols('f',cls=Function)
y=f(x)
eq=Eq( 6938.78*diff(y,x,2) + 5129.907*diff(y,x) + 379259*y-900*sin(5.3*x),0)
eq_done=dsolve(eq,y, ics={ f(0):0, diff(y,x).subs(x,0):0 } )
plot(eq_done.rhs,(x,0,10))
要获得更平滑的线条,您可以关闭自适应算法并设置每行的点数:
plot(eq_done.rhs,(x,0,10), adaptive=False, nb_of_points=1000)
此外,help()
函数是您的朋友,因为它允许快速访问特定函数的文档。执行help(plot)
,了解plot
命令的详细信息。