kleine Mathe-Spielereien
Zum editieren war ich zu langsam, hier der neue Link:
https://www.dropbox.com/s/dpwhcgzk9t2b3 ... 8.png?dl=0
Grüße
Dennis
https://www.dropbox.com/s/dpwhcgzk9t2b3 ... 8.png?dl=0
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Danke für den link. heruntergeladen und gedruckt.
Alles soll jetzt gut werden und müsste jetzt klappen.
Anbei ein Beispiel aus meinen Anfängen in Python.
Wer immer strebend sich bemüht, den können wir erlösen. F II Goethe
Gute Zeit OSWALD
Alles soll jetzt gut werden und müsste jetzt klappen.
Anbei ein Beispiel aus meinen Anfängen in Python.
Wer immer strebend sich bemüht, den können wir erlösen. F II Goethe
Gute Zeit OSWALD
Code: Alles auswählen
[/
import math
a = ((3 + 5) / 2 + 3) * (2 + 1)**2
print ("Klammern:", a)
b = math.sqrt(a)
print ("Wurzel:",b)
c = math.fsum([ 1.5, 2.3, 1.9, -3.0, 2.8])
print ("Summe exakt:", c)
c1 = sum([ 1.5, 2.3, 1.9, -3.0, 2.8])
print ("Summe:", c1)
d = math.exp(-c)
print ("Exp.:", d)
code]
Und das Leerzeichen zwischen print und ( ist überflüssig.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
05.08.22
Probieren geht über studieren.na dann mal los
OSWALD
code
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
def func(x, a, b, c):
return a * np.exp(-b * x) + c
Definieren Sie die Daten, die mit etwas Rauschen angepasst werden sollen:
xdata = np.linspace(0, 4, 50)
y = func(xdata, 2.5, 1.3, 0.5)
rng = np.random.default_rng()
y_noise = 0.2 * rng.normal(size=xdata.size)
ydata = y + y_noise
plt.plot(xdata, ydata, 'b-', label='data')
Fit für die Parameter a, b, c der Funktion func :
popt, pcov = curve_fit(func, xdata, ydata)
popt
array([2.56274217, 1.37268521, 0.47427475])
plt.plot(xdata, func(xdata, *popt), 'r-',
label='fit: a=%5.3f, b=%5.3f, c=%5.3f' % tuple(popt))
Beschränken Sie die Optimierung auf den Bereich von , und :0 <= a <= 30 <= b <= 10 <= c <= 0.5
popt, pcov = curve_fit(func, xdata, ydata, bounds=(0, [3., 1., 0.5]))
popt
array([2.43736712, 1. , 0.34463856])
plt.plot(xdata, func(xdata, *popt), 'g--',
label='fit: a=%5.3f, b=%5.3f, c=%5.3f' % tuple(popt))
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()
code
Probieren geht über studieren.na dann mal los
OSWALD
code
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
def func(x, a, b, c):
return a * np.exp(-b * x) + c
Definieren Sie die Daten, die mit etwas Rauschen angepasst werden sollen:
xdata = np.linspace(0, 4, 50)
y = func(xdata, 2.5, 1.3, 0.5)
rng = np.random.default_rng()
y_noise = 0.2 * rng.normal(size=xdata.size)
ydata = y + y_noise
plt.plot(xdata, ydata, 'b-', label='data')
Fit für die Parameter a, b, c der Funktion func :
popt, pcov = curve_fit(func, xdata, ydata)
popt
array([2.56274217, 1.37268521, 0.47427475])
plt.plot(xdata, func(xdata, *popt), 'r-',
label='fit: a=%5.3f, b=%5.3f, c=%5.3f' % tuple(popt))
Beschränken Sie die Optimierung auf den Bereich von , und :0 <= a <= 30 <= b <= 10 <= c <= 0.5
popt, pcov = curve_fit(func, xdata, ydata, bounds=(0, [3., 1., 0.5]))
popt
array([2.43736712, 1. , 0.34463856])
plt.plot(xdata, func(xdata, *popt), 'g--',
label='fit: a=%5.3f, b=%5.3f, c=%5.3f' % tuple(popt))
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()
code
Du musst Code Tags benutzen.
[code*]
[/code*]
Die müssen vor und hinter deinem Code stehen. Und der Stern * muss weggelassen werden (sonst zeigt der das ja hier nicht an).
Du kannst das üben mir der Vorschau Funktion, bis es Sitzt.
[code*]
[/code*]
Die müssen vor und hinter deinem Code stehen. Und der Stern * muss weggelassen werden (sonst zeigt der das ja hier nicht an).
Du kannst das üben mir der Vorschau Funktion, bis es Sitzt.
Hier sieht man, wie der Beitrag richtig aussehen würde.
Oben steht Fließtext, dann ein Codeblock, der nur den ausführbaren Python-Quelltext enthält:
Zuletzt kann auch noch Fließtext folgen, oder ein weiterer Codeblock, oder noch ganz andere Dinge..
Man kann übrigens auch bei fremden Beiträgen auf den "Zitat"-Knopf (das Anführungszeichen) klicken, um zu studieren, wie dort die Tags benutzt wurden.
Oben steht Fließtext, dann ein Codeblock, der nur den ausführbaren Python-Quelltext enthält:
Code: Alles auswählen
import math
a = ((3 + 5) / 2 + 3) * (2 + 1)**2
print ("Klammern:", a)
b = math.sqrt(a)
print ("Wurzel:",b)
c = math.fsum([ 1.5, 2.3, 1.9, -3.0, 2.8])
print ("Summe exakt:", c)
c1 = sum([ 1.5, 2.3, 1.9, -3.0, 2.8])
print ("Summe:", c1)
d = math.exp(-c)
print ("Exp.:", d)
Man kann übrigens auch bei fremden Beiträgen auf den "Zitat"-Knopf (das Anführungszeichen) klicken, um zu studieren, wie dort die Tags benutzt wurden.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Hallo ich werde jetzt die gleichen Z;eichen setzen , die ch eben
über einen Ziatatknopf gesehen haben.
über einen Ziatatknopf gesehen haben.
Code: Alles auswählen
import scipy
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
[code]
das müsste jetzt stimmen
6.8.2022
*Man fliegt schneller hier raus, als man schreiben kann.Soeben passiert*
Ein neues Spiel, ein neuer Spass.
Heute Thema : plynome 3.Grades mit scipy und matplotlib plotten.
Beginn mit dem einfachsten Code.
Zuletzt endlich die tags richtig einsetzen.
'wer immer stetig strebend sich bemüht, den können wir erlösen FII, Goethe
`Gute Zeit OSWALD
*Man fliegt schneller hier raus, als man schreiben kann.S
Code: Alles auswählen
Ein neues Spiel, ein neuer Spass.
Heute Thema : plynome 3.Grades mit scipy und matplotlib plotten.
Beginn mit dem einfachsten Code.
Zuletzt endlich die tags richtig einsetzen.
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(x, y)
F = 3 + 3*x + 6*X*Y + 5*X**4
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, F)
plt.show()
`Gute Zeit OSWALD
]Dieses Spiel, das "Spass" macht , hat hat aber auch einen handfesten
Hintergrund. Die Mathematik. Getoppt wird die Visualisierung z.B . nur noch
durch den Isomorphismus, den ich nie verstehen werde.
Auch für die Visualisierung spielt Mathematik eine die Rolle schlechthin.
Es sollte sich also lohnen ,mit dem vorliegenden Code alle Funktionen
und Parameter auszuprobieren. Die entstehenden ' Bildchen' sind alle
keine Zufälle, sondern Ergebnisse von der Anwendung mathematische
Funktionen.Erst verstehen, dann neue Parameter hinzufügen. Ein weiter Weg.
[
Gute Zeit OSWALD
Hintergrund. Die Mathematik. Getoppt wird die Visualisierung z.B . nur noch
durch den Isomorphismus, den ich nie verstehen werde.
Auch für die Visualisierung spielt Mathematik eine die Rolle schlechthin.
Es sollte sich also lohnen ,mit dem vorliegenden Code alle Funktionen
und Parameter auszuprobieren. Die entstehenden ' Bildchen' sind alle
keine Zufälle, sondern Ergebnisse von der Anwendung mathematische
Funktionen.Erst verstehen, dann neue Parameter hinzufügen. Ein weiter Weg.
[
Code: Alles auswählen
# -*- coding: utf-8 -*-
import scipy
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = np.arange(-1, 5, 0.25)
y = np.arange(-1, 5, 0.25)
X, Y = np.meshgrid(x, y)
F= np.exp(Y-X)
#F= np.exp(X-Y)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, F)
plt.show()
Hier sehen wir eine Darstellung von 2 nach unten geöffnete (inverse) Parabeln als
Flächen abgebildet . Ich vermute, dass die Funktion zwei reale Nullstellen hat.
Flächen abgebildet . Ich vermute, dass die Funktion zwei reale Nullstellen hat.
Gute Zeit OSWALD
# -*- coding: utf-8 -*-
import scipy
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = np.arange(-1,2,0.25)
y = np.arange(-1,2,0.25)
X, Y = np.meshgrid(x, y)
#F = - 5*X**2 +4*X -12
F = - 5*Y**2 +4*Y -12
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, F)
plt.show()
Hier die Darstellung von zwei inversen nach unten offenen Parabeln
als Flächen.
Gute Teit OSWALD
als Flächen.
Code: Alles auswählen
# -*- coding: utf-8 -*-
import scipy
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = np.arange(-1,2,0.25)
y = np.arange(-1,2,0.25)
X, Y = np.meshgrid(x, y)
#F = - 5*X**2 +4*X -12
F = - 5*Y**2 +4*Y -12
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, F)
plt.show()
Gute Teit OSWALD
Abschließend noch der Versuch zwei sattelähnliche Figuren
mit einfachsten Mitteln in 3D zu erzeugen.
Gute Zeit OSWALD
mit einfachsten Mitteln in 3D zu erzeugen.
Code: Alles auswählen
# -*- coding: utf-8 -*-
import scipy
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = np.arange(-1,2,0.25)
y = np.arange(-1,2,0.25)
X, Y = np.meshgrid(x-1,y)
F = X*Y
F = Y**2 - X**2 -1
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, F)
plt.title("Beide Paraboloide ,sattelähnlich ")
plt.show()
Mein "Universalrechner liegt jetzt in verbesserter Version vor.
Er kann jetzt 'gemischte Terme folgender Form verarbeiten
z.B. Polynome plus 'normale Terme'. : 3*x**3 - sin(3) + Wnat ( 1000,4) -exp(3) + 2x**2 - 25*x
Geben Sie einfach im Programm genannte Zeile als Test ein.
Ein gleiches konnte ich in numpy nicht umsetzen (noch nicht?)
Code läuft aud PYTHON
Gute Zeit OSWA LD
Er kann jetzt 'gemischte Terme folgender Form verarbeiten
z.B. Polynome plus 'normale Terme'. : 3*x**3 - sin(3) + Wnat ( 1000,4) -exp(3) + 2x**2 - 25*x
Geben Sie einfach im Programm genannte Zeile als Test ein.
Ein gleiches konnte ich in numpy nicht umsetzen (noch nicht?)
Code läuft aud PYTHON
Code: Alles auswählen
import math
from math import *
x =1
print()
print("")
def W10(Rad, Wp):
mantisse =(1/Wp)* log10(Rad)
Ergebnis= round(10 **mantisse,4 )
return Ergebnis
def Wnat(R, Wp):
mantisse =(1/Wp)* log(R)
Ergebnis= round(2.7183 **mantisse ,6)
return Ergebnis
def main():
print(" Geben Sie bitte einzelne oder gleichzeitig mehrere Terme ein:")
print(" Erlaubt sind alle mathematischen in Python integrierten Funktionen")
print(" Eigene Funktionen können integriert werden (open source code !")
print(" Terme und Polynome dürfen gemischt werden. ")
print(" Beispiel : 3 *x**2 -4*x**2 + cos(2) - exp(0.5) + Wnat(225,5) ")
x =1
p= input("Bitte Terme zur Auswertung hi er eintragen :" , )
print ()
print ()
print("Ergebnis = :", eval(p))
if __name__ == '__main__':
main()
18.082022 Pardon, da ist was schief gelaufen.
NUMPY Arrays und Matrizen. Ein erster Versuch.
Praktisches Beispiel
" München Leichtathletik-EU-Meisterschaft"
Ralf , Otto, , John und Max haben nach dem Wettkampf Hunger
und kaufen sich Wurst, jeder eine andere Sorte und davon unterschiedliche Mengen.
Ralf kauft 100g der Wurstsorte A
50g B
70 g C
Otto 135 g A
90 g B
120 g C
John 107 g A
73 g B
56 g C
Max 95 g A
107g B
87g C
Preistafel : Sorte A = 1.30 / 100g
B = 1,11
C = 0.99
Was zahlt jeder der Männer für seinen Einkauf ?
(Ergebnis", [2.548 3.942 2.7557 3.284 ]" )
Gute Zeit OSWALD
NUMPY Arrays und Matrizen. Ein erster Versuch.
Praktisches Beispiel
" München Leichtathletik-EU-Meisterschaft"
Ralf , Otto, , John und Max haben nach dem Wettkampf Hunger
und kaufen sich Wurst, jeder eine andere Sorte und davon unterschiedliche Mengen.
Ralf kauft 100g der Wurstsorte A
50g B
70 g C
Otto 135 g A
90 g B
120 g C
John 107 g A
73 g B
56 g C
Max 95 g A
107g B
87g C
Preistafel : Sorte A = 1.30 / 100g
B = 1,11
C = 0.99
Was zahlt jeder der Männer für seinen Einkauf ?
(Ergebnis", [2.548 3.942 2.7557 3.284 ]" )
Gute Zeit OSWALD
Code: Alles auswählen
[
import numpy as np
def main():
Wurstmenge = np.array([[100,50,70],[135,90,120],[107,73,56],[95,107,87]])
Wurstpreis_per_100_g = np.array([1.30,1.11,0.99])
Preis_in_Cent = np.dot(Wurstmenge,Wurstpreis_per_100_g)
Preis_in_Euro = Preis_in_Cent / np.array([100,100,100,100])
print(Preis_in_Euro)
if __name__ == '__main__':
main()
/code]
- __blackjack__
- User
- Beiträge: 13077
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@OSWALD: `Preis_in_Cent` hätte man auch einfach durch 100 teilen können:
Und auch wenn `numpy.dot()` hier funktioniert, hätte ich das wahrscheinlich wegen dem Verständnis als Multiplikation und anschliessender Summe ausgedrückt:
Code: Alles auswählen
In [27]: Preis_in_Cent
Out[27]: array([254.8 , 394.2 , 275.57, 328.4 ])
In [28]: Preis_in_Cent / 100
Out[28]: array([2.548 , 3.942 , 2.7557, 3.284 ])
Code: Alles auswählen
In [29]: Wurstmenge * Wurstpreis_per_100_g
Out[29]:
array([[130. , 55.5 , 69.3 ],
[175.5 , 99.9 , 118.8 ],
[139.1 , 81.03, 55.44],
[123.5 , 118.77, 86.13]])
In [30]: (Wurstmenge * Wurstpreis_per_100_g).sum(axis=1)
Out[30]: array([254.8 , 394.2 , 275.57, 328.4 ])
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
'Suchet, so werdet Ihr finden'
Hier im Forum habe ich gelesen, dass es Schwierigkeiten
bei NUMPY mit dem Lösen von linearen Gleichungen gibt.
Im neuesten Tutorial von NUMPY wird man fündig.
Hier zwei Beispiele, sogar mit ' Ergebniskontrolle '. Alles
mühelos aus dem Turorial entnommen. Man muss ja nicht jedes Mal
das Rad erfinden. Wäre selbst auch nicht dazu in der Lage.
D ie Bibliotheken sind ja dazu da, um das `'etzte' aus Python heraus zu holen.
Wer immer strebend sich bemüht, den können wir erlösen FII Goethe
Gute Zeit Oswald
Hier im Forum habe ich gelesen, dass es Schwierigkeiten
bei NUMPY mit dem Lösen von linearen Gleichungen gibt.
Im neuesten Tutorial von NUMPY wird man fündig.
Hier zwei Beispiele, sogar mit ' Ergebniskontrolle '. Alles
mühelos aus dem Turorial entnommen. Man muss ja nicht jedes Mal
das Rad erfinden. Wäre selbst auch nicht dazu in der Lage.
D ie Bibliotheken sind ja dazu da, um das `'etzte' aus Python heraus zu holen.
Wer immer strebend sich bemüht, den können wir erlösen FII Goethe
Gute Zeit Oswald
Code: Alles auswählen
# creating the array "a"
A = np.array([[3, 4, 5], [1, 2, 3], [2, 4, 5]])
B = np.array([9, 8, 7])
print("Array A : \n", A)
print("Array B : \n", B)
# Berechnung der Gleichng
ans = np.linalg.solve(A, B)
print("Ergebnisse der Gleichung :\n", ans)
###########
print(" Prüfung auf Richtigkeit")
print(np.allclose(np.dot(A, ans), B))
##################################
A = np.array([[4, 4, 6], [1, 2, 3], [4, 5, 1]])
B = np.array([8, 7, 6])
print("Array A : \n", A)
print("Array B : \n", B)
# Berechnung der Gleichng
ans = np.linalg.solve(A, B)
print("Ergebnisse der Gleichung :\n", ans)
###########
print(" Prüfung auf Richtigkeit")
print(np.allclose(np.dot(A, ans), B))
[
/code]