• Register

Problem z sym.Eq

+1 vote
71 views
V definiranju enačb se mi je pojavil problem, katerega nimam rešitve in ga ne razumem

Definicija enačbe:

en_koef = sym.Eq(((e**(J*t)*(J**2 + J*b + a))) , 0)
en_koef

Rezultat = False

če vpišem

en_koef = sym.Eq(((e**(J*t)*(J**2 + J*b + a))) , 1)
en_koef

Rezultat = enačba

Na začetku sem dobil kot rezultat ustrezno enačbo, ko sem pa nekajkrat vse pognal mi pa ne dela več.

Mogoče kdo ve kako to rešiti?

hvala, lp
asked May 30 by rudipintar (130 points)
Preverite, ali so vse spremenljivke, ki nastopajo v vaši enačbi (e, J, t, a, b) ustrezno definirane (verjetno kot simboli), in jih niste prepisali s čim drugim. V takem primeru bi bilo možno, da leva stran enačbe enostavno ne bi mogla biti enaka 0, kar bi razložilo rezultat "False".
Pozdravljeni!
t, d, k, m, b, a, e, J, y0, v0 = sym.symbols('t, d, k, m, b, a, e, J, y0, v0', real=True, positive=True) # J predstavlja grško črko lambda
y = sym.Function('y')(t)

Tako imam definirane simbole. Simbole (e, J, t, b, a) sem uporabil tudi že v drugih enačbah in stvari delajo. Edino pri enačbi navedeni na vrhu pa javlja napako.

Ta problem se mi pojavi tudi če podam čisto enostavno enačbo:
test = sym.Eq(a*b, 0)
test
Rezultat = False

Če pa namesto 0 dam 1
test = sym.Eq(a*b, 1)
test
Rezultat = ab=1
Edini način, da velja a*b = 0 je, da je a ali b enako 0. To se v vašem primeru ne more zgoditi, saj ste definirali a in b kot pozitivno in realno število.

Verjetno enako velja za enačbo zgoraj, med seboj množite in seštevate pozitivna realna števila. Produkt ne more biti enak 0.
Aha okej, ja sem kasneje definiral da so simboli realna in pozitivna števila in se nisem zavedal, da bo to povzročilo to napako. Sem sedaj odpravil problem.
hvala za vaš odgovor.
lp

Please log in or register to answer this question.

...