• Register

Težava z odvajanjem ( sympy.diff() )

+3 votes
236 views

V PyCharmu bi rad odvedel funkcijo 12x^2 - 3x, torej v: 24x - 3. Stvari sem se lotil takole:     

x2 = np.diff(12*x**2- 3*x, x), 

vendar pa mi javlja da x ni definiran. Jaz pa bi rad funkcijo le odvajal po x. 

NameError: name 'x' is not defined. 

Kako se pričakuje da bi bila spremenljivka tukaj definirana? S pomočjo odvoda in funkcije solve bi šele nato dobil vrednost x ki me zanima. 

V notebooku mi je stvar bolj jasna in princip deluje, v PyCharmu pa ne.

---- komentar urejanja JS ----
Izvirni naslov je bil zavajujoč (Težava v PyCharm-u ( np.diff() )) in sem ga malenkost popravil

asked May 10, 2015 by ZigaKastigar (680 points)
edited May 12, 2015 by janko.slavic

3 Answers

+3 votes
 
Best answer
Danes je profesor komentiral to stvar... se ti pa opravičujem ker sem spregledal in ti narobe na nek način komentiral. Napaka je v tem da ti želiš simbolno rešiti imaš pa končnico np. rešuješ pa simbolno... To bi jaz rešil takole:

from sympy.physics.mechanics import init_vprinting
from sympy import *
init_printing()

x = symbols('x')
x2 = diff(12*x**2-3*x,x)
 

Upam da ti to pomaga.
answered May 12, 2015 by Sandi Koprič (1,420 points)
selected May 12, 2015 by janko.slavic
V modulu priporočam, da uvozite sympy takole:

import sympy as sym
init_printing()

x = sym.symbols('x')
x2 = sym.diff(12*x**2-3*x,x)

---
Razlog je v tem, da si z uvozom "*" zapacate ves imenski prostor in lahko kličete napačne funkcije, pa ne boste takoj opazili.
0 votes

Mogoče strel v prazno, ampak, ali si definiral simbol(v tvojem primeru x) v takem smislu: (?)

x = symbols("x")
answered May 10, 2015 by Žiga Pisar (1,460 points)
+1 vote
Jaz sem imel podoben primer, pa sem rešil to tako, kot je komentiral že kolega Žiga... preveri če imaš vse simbole definirane.. V tvojem primeru je samo x.
answered May 11, 2015 by Sandi Koprič (1,420 points)
...