2016-05-10 3 views
0

だから、3式を有する: R = 5、V = 10、C = 10PythonのリニアDiffrential式

R C DUC(T)/ DT + Ucが(T)= Vdcを

をI(T)= C * DUC(T)/ dtは

ウル(T)= I(T)* R

私はどのようにしてUcが(t)を取得するscypy dsolveを用いて差分方程式を解かなく私は他の方程式で使っていますか?私は第2の式で使用する関数の派生を取ろうとしましたが、それはあなたに複数の変数を教えてくれます。

私のコード:機能とあなたが派生したい位置:

from sympy import * 
import numpy as nm 
import pylab as pl 
t = nm.arange(0,1,0.002) 
r=5 
v=10 
c=10 

#solving diff equation 
t=Symbol('t') 
u=Function('u') 
uu= Derivative(u(t),t) 
uc = dsolve(r*c*uu+u(t)-v,u(t)) 

#finding i 
i = c * Derivative(uc) 

#finding r 
ur = i*r 

#plot 
t = nm.arange(0,1,0.002) 
u = uc 
i = c * Derivative(uc) 
ur = i*r 

pl.subplot(3,1,1) 
pl.plot(t,u, '-r') 
pl.grid() 
pl.ylabel('capacitator voltage') 

pl.subplot(3,1,2) 
pl.plot(t,i, '-b') 
pl.grid() 
pl.ylabel('current') 

pl.subplot(3,1,3) 
pl.plot(t,r, '-') 
pl.grid() 
pl.ylabel('resistor') 

pl.show 

答えて

0

はい誘導体は、2つの必須の引数を取ります。

だから私はあなたが

i = c * Derivative(uc, t) 
をしたいと仮定します