

現在  
<https://www.eidos.ic.i.u-tokyo.ac.jp/~tau/lecture/computational_physics/text/4-matplot-
numpy.pdf>  
こちらのサイトをPythonの自学学習として利用させていただいています。係数行列A、ベクトルfまでは作成できたのですが、この先がどうしてもわかりません。何かアドバイスやヒントを教えていただけると幸いです。

[code]

    import numpy as np
    from sympy import *
    from scipy.integrate import odeint
    import matplotlib.pyplot as plt
    
    
    n=10
    m=2.0
    k=2.0
    x0=0.0
    
    X=np.zeros((n,2))
    print(X)
    
    StartTime=0.0
    EndTime=30.0
    dt=0.01
    
    Count=int((EndTime-StartTime)/dt)
    
    A=np.arange(n*n).reshape(n,n)
    for i in range(0,n):
        for j in range(0,n):
            if j==i:
                A[i][j]=2
            elif j==i-1 or j==i+1:
                A[i][j]=-1
            else:
                A[i][j]=0
    A[9][9]=1
    A=A*(-k/m)
    print(A)
    
    f=np.zeros((n,1))
    f[0][0]=-x0*(-k/m)
    print(f)
    
[/code]

このようなプログラムを作成し、

[code]

    [[0. 0.]
     [0. 0.]
     [0. 0.]
     [0. 0.]
     [0. 0.]
     [0. 0.]
     [0. 0.]
     [0. 0.]
     [0. 0.]
     [0. 0.]]
    [[-2.  1. -0. -0. -0. -0. -0. -0. -0. -0.]
     [ 1. -2.  1. -0. -0. -0. -0. -0. -0. -0.]
     [-0.  1. -2.  1. -0. -0. -0. -0. -0. -0.]
     [-0. -0.  1. -2.  1. -0. -0. -0. -0. -0.]
     [-0. -0. -0.  1. -2.  1. -0. -0. -0. -0.]
     [-0. -0. -0. -0.  1. -2.  1. -0. -0. -0.]
     [-0. -0. -0. -0. -0.  1. -2.  1. -0. -0.]
     [-0. -0. -0. -0. -0. -0.  1. -2.  1. -0.]
     [-0. -0. -0. -0. -0. -0. -0.  1. -2.  1.]
     [-0. -0. -0. -0. -0. -0. -0. -0.  1. -1.]]
    [[0.]
     [0.]
     [0.]
     [0.]
     [0.]
     [0.]
     [0.]
     [0.]
     [0.]
     [0.]]
    
[/code]

この結果を得ています。


CC BY-SA 4.0
2019-05-11T09:12:23.730
54890
2019-05-11T10:46:24.307
2019-05-11T10:46:24.307
19110
34268
question
python python3 scipy
Scipyを用いた2階常微分方程式のプログラムについて