Python TypeError: can't multiply sequence by non-int of type 'numpy.float64'

0

Hej! Pomożecie? Jestem zielona jeśli chodzi o pythona a mam zrobić projekt na zaliczenie. Chodzi o to, że wszystko było w porządku, ale nagle klikam "run" i wyskakuje mi to:

File "/Users/madziulka/.spyder-py3/untitled4.py", line 16, in df
    dx_dt=(k1*A-k2*X-k3*X*Y**2)/k4

TypeError: can't multiply sequence by non-int of type 'numpy.float64'

Całość to:

import numpy as np
import scipy.integrate as sc
import matplotlib.pyplot as pl

def df(y,t):
    k10=10**-6
    k2=5.5*10**-7
    k3=1
    k4=10**-4
    X,Y,theta=y
    A=0,708
    k1=k10*np.exp(theta)
    beta=0.5
    gamma=10
    
    dx_dt=(k1*A-k2*X-k3*X*Y**2)/k4
    dy_dt=(k2*X+k3*X*Y**2-k4*Y)/k4
    dtheta_dt=(gamma*Y-beta*theta)
    
    
    return[dx_dt,dy_dt,dtheta_dt]
    

w0=[0,0,0]


t=np.linspace(0,300,300001)
       

roz=sc.odeint(df,w0,t)
pl.plot(t,roz)

wszystko chodziło, teraz nic nie działa ;/ może macie pomysł co z tym zrobić?
wartości k podniesione są do potęgi, dlatego odczytuje to jako pogrubienie

0

Przecinek. Zamień

    A=0,708

na:

    A=0.708

Wszystko powinno działać. Używając przecinka stworzyłaś tuple zamiast ułamka.

0

Na początek Zadeklaruj te wszystkie ki, jako: np.int64.

1 użytkowników online, w tym zalogowanych: 0, gości: 1