View difference between Paste ID: nVYArB8n and YB5pGeSs
SHOW: | | - or go back to the newest paste.
1-
def eqS((A, B, C, D), (An, Bn, Cn, Dn)):
1+
def analitInitial((A, B, C, D), x0, T):
2-
    A = mt(A); B = mt(B); C = mt(C); D = mt(D)
2+
    T = arange(T[0], T[1], T[2])
3-
    An = mt(An); Bn = mt(Bn); Cn = mt(Cn); Dn = mt(Dn)
3+
    x0 = array(x0)
4-
    b = B[:, 0]
4+
5-
    bn = Bn[:, 0]
5+
    J, V = eig(A)
6-
    n = len(A)
6+
    J = mt(J * eye(3, 3))
7-
    Sy = b
7+
    S = mt(V)
8-
    Sny = bn
8+
    y = ([], [])
9-
    for i in range(1, n):
9+
10-
        Apow = copy(A)
10+
    for i in range(len(T)):
11-
        Anpow = copy(An)
11+
        y[0].append(T[i])
12-
        if not i == 1:
12+
        yy = C * S * mt(expm(J * T[i])) * mt(inv(V)) * mt(x0).transpose()
13-
            for j in range(i-1):
13+
        y[1].append(array(yy[0])[0][0])
14-
                Apow = dot(Apow, A)
14+
    plot(y[0], y[1])
15-
                Anpow = dot(Anpow, An)
15+
    title('Analytical construction')
16-
        Sy = hstack((Sy, dot(Apow, b)))
16+
    xlabel('t, s.')
17-
        Sny = hstack((Sny, dot(Anpow, bn)))
17+
    ylabel('y(t)')
18-
    return dot(Sy, inv(Sny))
18+
    grid(color='g', linestyle='--')
19
    show()