88558


Pythonプログラミング作業をGoogle Colab上でしており、下記記事に記載されたコードをそのまま打ち込む作業をしています。

<https://shoichimidorikawa.github.io/Miscellaneous/K-M.pdf>

そこでエラーが表示されたのですが、検索しても解決策が見つけられずこちらに投稿した次第です。

エラーは、11行目について `TypeError: bad operand type for unary -: 'tuple'`
と表示されています。何をどのように修正するとよいのか、どなたかご教示いただけますでしょうか。

[code]

    # Kermac & MacKecdric equations
    import scipy
    from scipy.integrate import solve_ivp
    import numpy as np
    import matplotlib.pyplot as plt
    # S/N=y[0], I/N=y[1], R/N=y[2]
    # R0 = \beta N/\gamma
    R0=1,3
    def func (t,y):
      dydt = np.zeros_like(y)
      dydt[0] = -R0*y[0]*y[1]
      dydt[1] = (R0*y[0]-1)*y[1]
      dydt[2] = y[1]
      return dydt
    t_span=[0,100]
    y0 = [0.999,0.001,0] #初期条件
    t = np.linspace(t_span[0], t_span[1], 400)
    sol = scipy.integrate.solve_ivp(func, t_span, y0, t_eval=t)
    t1 = sol.t
    y0 = sol.y[0,:]
    y1 = sol.y[1,:]
    y2 = sol.y[2,:]
    t2 = np.linspace(0, 10, 400)
    plt.plot(t1, y1, label="R_0 = 1.3")
    
    plt.legend() # 凡例を表示
    plt.title("Kermac & MacKendric equations")
    plt.show()
    
[/code]


CC BY-SA 4.0
2022-04-29T02:56:34.970
88556
2022-04-29T04:46:52.203
2022-04-29T04:46:52.203
3060
52397
question
python
TypeError: bad operand type for unary -: 'tuple'


**typoが原因ですね。**  
8行目が本来なら`R0=1.3`とピリオドで浮動小数点数となるべきところを、`R0=1,3`とカンマになって (1,3) のtupleになっています。  
それがエラーメッセージの基になっています。


CC BY-SA 4.0
2022-04-29T04:04:26.883
88558
2022-04-29T04:04:26.883
26370
88556
answer