Was ich jetzt lerne, ist so interessant, wenn ich verschiedene Dinge mit Python ausprobiere und vergessen habe, einen Artikel zu schreiben. Sie müssen für die Zuweisung, Faktorisierung, Differenzierung usw. kein Python in Code schreiben. Die Bibliothek ist zu bequem. Ich studiere derzeit elementare Chaostheorie, multiple Regressionsanalyse der multivariaten Analyse und multivariate Normalverteilung als Wahlfächer an der Universität. Ich werde es mir vorstellen, weil ich nichts verstehen kann, selbst wenn ich mir die Symbole ansehe, die ich im Klassenzimmer nicht gut verstehe. Ich verstehe die Theorie überhaupt nicht, aber wenn Sie sie betrachten, kann es eine Chance sein, etwas Verständnis zu erlangen. Die Chaostheorie mit multivariater Analyse und Differentialgleichungen ist zu schwierig, deshalb stolpere ich von Anfang an, also habe ich diesmal von Anfang an bis zur Analyse im Internet unterschiedlich gesucht, was ideal ist Ich habe nach dem Code gesucht. Um die schwierigen Worte zu sagen, ich verstehe nichts ... Ich habe diesen Artikel nicht selbst geschrieben ... Schwierig ... Eines Tages möchte ich die Theorie der multivariaten Analyse verstehen und Code anwenden. Nein, warum bist du so motiviert geworden, als du nichts verstanden hast?
Ich habe die Funktion mit Sympy in Python importiert. Bibliothek Es ist so bequem, dass die Differenzierung so intuitiv angezeigt wird ... Wie Sie dem Code entnehmen können, ist die Funktion, die die Differenzierung verwendet, diff ().
import sympy as sym
from sympy import * #Imoprt alle Funktionen aus der Sympy-Bibliothek
sym.init_printing() #Ausgabe formatieren
x=Symbol('x') #Brief'x'Ist als die Variable x definiert
y=Symbol('y') #Brief'y'Ist als die Variable y definiert
#Differential
a=diff(sin(x),x) #sin(x)Differenzierung von
b=diff(exp(x),x) # e^Differenzierung von x
#Höheres Differential
c=diff(x**4+x**3,x,2) # x^4+x^Differenz 2. Ordnung von 3
#Teilweise Differenzierung
d=diff(x**2+x*y+2*y**2,x) # x^2+xy+2y^Partielle Differenzierung von 2 durch x
e=sym.integrate(x+2*y,(x,0,2),(y,2,3))
print('a: {0}'.format(a))
print('b: {0}'.format(b))
print('c: {0}'.format(c))
print('d: {0}'.format(d))
print('e: {0}'.format(e))
Von oben nach unten
cos(x)\\
e^x\\
6x(2x + 1)\\
2x+y\\
24
{3x^2+6xy+3y^2+x^3+y^3}
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
def func1(x, y):
return 3*x**2+6*x*y+3*y**2+x**3+y**3
x = np.arange(-10.0, 5.0, 0.1)
y = np.arange(-10.0, 5.0, 0.1)
X, Y = np.meshgrid(x, y)
Z = func1(X, Y)
fig = plt.figure()
ax = Axes3D(fig)
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_zlabel("f(x, y)")
ax.plot_wireframe(X, Y, Z)
plt.show()
Wenn Sie sich die Mühe machen, den Stopppunkt und den Maximalpunkt von Hand zu finden, scheint der Maximalwertpunkt bei (-4, -4) zu liegen. Es ist schwer zu verstehen. Ich frage mich, ob es passt
from sympy import *
x = Symbol('x')
y = Symbol('y')
f =3*x**2+6*x*y+3*y**2+x**3+y**3
f_x = Derivative(f,x).doit() #Partielle Differenzierung erster Ordnung mit x
f_y = Derivative(f,y).doit() #Partielle Differenzierung erster Ordnung mit y
stationary_points = solve([f_x,f_y],[x,y]) #Funktionsstopppunkt
stationary_points = list(map(lambda x:simplify(x),stationary_points)) #Vereinfachung
f_xx = Derivative(f, x, 2).doit() #Partielle Differenzierung zweiter Ordnung mit x
f_yy = Derivative(f, y, 2).doit() #Partielle Differenzierung zweiter Ordnung mit y
f_xy = Derivative(f_x,y).doit() #Teilweise differenziert durch x und teilweise differenziert durch y
f_yx = Derivative(f_y,x).doit() #Teilweise differenziert durch y und dann teilweise differenziert durch x
#Hessen Prozession
hesse = Matrix([
[f_xx,f_xy],
[f_yx,f_yy]
])
#Hessen Matrix Matrix Formel
det_hessian = hesse.det()
#Ausgabe vorerst
print('f_x: {0}'.format(f_x))
print('f_y: {0}'.format(f_y))
print('f_xx: {0}'.format(f_xx))
print('f_yy: {0}'.format(f_yy))
print('f_xy: {0}'.format(f_xy))
print('f_yx: {0}'.format(f_yx))
print('Alles stoppt{0}'.format(stationary_points))
#Beurteilung
for i in range(len(stationary_points)):
sign_det_hessian = det_hessian.subs([(x,stationary_points[i][0]),(y,stationary_points[i][1])]).evalf()
if sign_det_hessian > 0:
sign_f_xx = f_xx.subs([(x,stationary_points[i][0]),(y,stationary_points[i][1])]).evalf()
if sign_f_xx > 0:
print('Haltepunkt:{0}Ist f(x,y)Minimaler Punkt'.format([stationary_points[i][0],stationary_points[i][1]]))
elif sign_f_xx < 0:
print('Haltepunkt:{0}Ist f(x,y)Maximaler Punkt von'.format([stationary_points[i][0],stationary_points[i][1]]))
else:
print('Kann mit dieser Methode nicht ermittelt werden')
elif sign_det_hessian < 0:
print('Haltepunkt:{0}Ist f(x,y)Sattelpunkt'.format([stationary_points[i][0],stationary_points[i][1]]))
Es gab, aber ich verstehe nicht. Sie können es nicht einmal mit Ihren eigenen Augen sehen. Nur das Bild eines in der Luft fliegenden Taschentuchs fällt mir ein ...
Ich habe geprüft, ob es das Limit ist. Wir haben x = rcosθ y = 2rsinθ unter Verwendung von Polarkoordinaten verwendet Ändern Sie den Wert der Polarkoordinaten entsprechend dem Wert des Nenners und der Situation, erstellen Sie eine Formel für die Dreiecksfunktion usw. und versuchen Sie es mit der Minute. Der Konvergenzwert beträgt übrigens 2.
\lim_{(x,y)\to (0,0)}\frac{x^3-8y^3+2x^2+8y^2}{x^2+4y^2}
import sympy as sym
import math
sym.init_printing()
Pi = sym.S.Pi #Pi
E = sym.S.Exp1 #Boden des natürlichen Logarithmus
I = sym.S.ImaginaryUnit #Imaginäre Einheit
oo = sym.oo #Unendlichkeit
#Definition der zu verwendenden Variablen(Alle ein unterer Buchstabe ist ein Symbol)
(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) = sym.symbols('a b c d e f g h i j k l m n o p q r s t u v w x y z')
import numpy as np
import matplotlib.pyplot as plt
c=(x**3-8*y**3+2*x**2+8*y**2)/(x**2+4*y**2)
d=sym.limit(c,x,0)
print('{0}'.format(d))
dd=sym.limit(d,y,0)
e=sym.limit(c,y,0)
ee=sym.limit(e,x,0)
print('{0}'.format(e))
if dd == ee :
print('Funktionsgrenzen existieren')
f=c.subs([(x,X),(y,1/2*Y)]).trigsimp() #Brauchen Vereinfachung(Sie sollten es Zeile für Zeile tun)
g=np.abs(sym.limit(f-ee,r,0))
print('{0}'.format(g))
else :
print('Es gibt keine Funktionsbeschränkung')
Dieses Ausführungsergebnis zeigt, dass das Limit der Funktion sicher existiert, aber wenn das Limit nicht existiert, haben wir nicht überprüft, wie es ausgeführt wird. Ich werde mein Bestes geben.
(x^2+xy+y^2)\log(x^2+y^2)
Ich habe versucht, x und y teilweise zu unterscheiden.
from sympy import *
import sympy as sym
import math
from IPython.display import display, Latex
x=Symbol('x') #Brief'x'Ist als die Variable x definiert
y=Symbol('y') #Brief'y'Ist als die Variable y definiert
f = (x ** 2 + x * y + y ** 2) * sym.log(x ** 2 + y ** 2)
display(f)
dx = sym.diff(f, x).subs({y: 0})
dy = sym.diff(f, y).subs({x: 0})
display(dx)
sym.plot(dx, (x, -5, 5))
display(dy)
sym.plot(dy, (y, -5, 5))
Als ich die Frage bei teratail akzeptierte, konnte ich die Antwort bekommen. Vielen Dank. Wenn x und y teilweise differenziert sind, durchlaufen beide den Ursprung, so dass es möglich ist, am Ursprung teilweise zu differenzieren. Einfach zu verstehen.
Es war einfach sehr praktisch für Python. Im Vergleich zu anderen Sprachen hat es viele Bibliotheken und ist wirklich erstaunlich. Als nächstes möchte ich eine Theorie hinzufügen. Auch diesmal war es nur eine Einführung. Ich möchte etwas mehr angewendet tun. Möchten Sie diesen Code für mühsame Berechnungen und Überprüfungen verwenden?
https://qiita.com/tibigame/items/aebbac176d9bbdaf3d15 https://qiita.com/hiroyuki_mrp/items/d373b951e216f62c4957 https://qiita.com/PlanetMeron/items/63ac58898541cbe81ada https://short4010.hatenablog.com/entry/2019/05/12/142731 Es ist mein Konto https://teratail.com/questions/283867