Skip to article frontmatterSkip to article content

Potenzen - mit angezeigtem Code


Dieses Notebook ist als Zusatz für alle diejenigen gedacht, die gerne wissen und verstehen wollen, wie diese Notebooks aufgabaut sind und was an Code dahinter steckt.

Hier zum Thema “Rechnen mit Potenzen”


#als erstes wird sympy importiert
from sympy import*

Darstellung von Potenzen

Damit Zahlen, die in Potenzschreibweise geschrieben sind, nicht als Dezimalzahlen ausgegeben werden, müssen wir hier wieder die folgende Schreibweise anwenden, die wir bereits bei der Darstellung von Brüchen kennengelernt haben:

für (2)3:    (-2)^{-3}: \ \ \ S(-2)**S(-3)

#Unterschiede in der Schreibweise
#Führen Sie die Zelle aus
(-2)**(-3)
#Führen Sie die Zelle aus
S(-2)**S(-3)
#Führen Sie die Zelle aus
term = S(-2)**UnevaluatedExpr(S(-3))
term

Übung

Stellen Sie 212 -2^{\frac{1}{2}} als Term dar.

#your Code here
#Zelle einklappen

#Lösung
term_2 = -S(2)**UnevaluatedExpr(((S(1)/S(2))))
term_2

Vereinfachen von Termen mit Potenzen

Terme, in denen (verschiedene) Variablen mit Potenzen stehen, wobei zur Vereinfachung die Potenzgesetze angewendet werden müssen, werden (teilweise) mit powsimp vereinfacht.

powsimp wendet das erste und zweite Potenzgesetz von links nach rechts an:

xaxb=xa+b x^a \cdot x^b = x^{a+b}

xaya=(xy)a x^a \cdot y^a = (x \cdot y)^a

#Beispiel als Code
#Führen Sie die Zelle aus
x,y,a,b = symbols('x,y,a,b')
powsimp(x**a*x**b)
#zweites Potenzgesetz
#Führen Sie die Zelle aus
powsimp(x**a*y**a)

Das Problem liegt hier darin, dass das nicht für alle a a , xx, yy R\in \mathbb{R} definiert ist.

Beispielsweise: (1)12(1)12((1)(1))12(-1)^{\frac{1}{2}} \cdot (-1)^{\frac{1}{2}} \neq ((-1)(-1))^{\frac{1}{2}}

#Die Vereinfachung kann aber erzwungen werden
#Führen Sie die Zelle aus
powsimp(x**a*y**a, force=True)

Zur Anwendung der ersten beiden Potenzgesetze von rechts nach links kann expand_power_exp und expand_power_base verwendet werden.

expand_power_base und expand_power_exp:

#Anwendung für das 1. Potenzgesetz
#Führen Sie die Zelle aus
expand_power_exp(x**(a+b))
#Anwendung für das 2. Potenzgesetz
#Führen Sie die Zelle aus
expand_power_base((x*y)**a, force= True)

Für die Anwendung des dritten Potenzgesetzes von links nach rechts verwendet man powdenest:

  1. Potenzgesetz: (xa)b=xab (x^a)^b = x^{a \cdot b}
#Anwendung
#Führen Sie die Zelle aus
powdenest((x**a)**b, force=True)

In vielen Fällen helfen zur Vereinfachung von Termen mit Potenzen auch expandund simplify bzw. sympy vereinfacht automatisch.

#Ein Beispiel dazu
#Führen Sie die Zelle aus
UnevaluatedExpr(10**8)/(100**5) * UnevaluatedExpr((UnevaluatedExpr (0.001**3 * 10**-11))/UnevaluatedExpr(100**7))
#Darstellung des Terms ohne UnevaluatedExpr
#sympy vereinfacht teilweise von selbst
#Führen Sie die Zelle aus
(10**8)/(100**5) * ((0.001**3 * 10**-11))/(100**7)
#Für eine Darstellung als Zehnerpotenzen hilft simplify weiter
#Führen Sie die Zelle aus
simplify((10**8)/(100**5) * ((0.001**3 * 10**-11))/(100**7))

Weitere Informationen zum Vereinfachen, auch von Potenzen, gibt es auch unter: https://docs.sympy.org/latest/tutorials/intro-tutorial/simplification.html

Übungen

  1. Vereinfachen Sie den Term mit sympy:

x8mxm5xm5x8m8 x^{8-m} \cdot x^{-m-5} \cdot x^{m-5} \cdot x^{8m-8}

#Zelle einklappen

#Lösung
#Führen Sie die Zelle aus
#Definition der Symbole
x,m = symbols('x,m')

#Darstellung des Terms
term_3 = x**(m-5) * x**(8-m) * x**(8*m - 8) * x**(-m - 5)
term_3
#Zelle einklappen
#Vereinfachen des Terms
powsimp(term_3)
  1. Vereinfachen Sie ebenfalls:

xm4(xm+1)1+(xm+3)1+(x4m+2)1 -x^{m-4} \cdot (x^{m+1})^{-1} + (x^{m+3})^{-1} + (x^{4m+2})^{-1}

#Zelle einklappen

#Lösung
#Symbol definieren
x,m = symbols('x,m')
term_4 = -x**(m-4) * (x**(m+1))**(-1) + (x**(m+3))**(-1) + (x**(4*m+2))**(-1)
term_4
#Vereinfachen des Terms
powsimp(-x**(m-4) * (x**(m+1))**(-1) + (x**(m+3))**(-1) + (x**(4*m+2))**(-1))