Einführung in Techniken zum Lösen von Gleichungen in Python (Codebeispiele)

不言
Freigeben: 2018-11-15 13:50:58
nach vorne
5106 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine Einführung in die Techniken zum Lösen von Gleichungen in Python (Codebeispiele). Ich hoffe, er wird Ihnen als Referenz dienen.

Numpy

Numpy ist etwas kompliziert, um Gleichungen zu lösen, und Sie müssen Matrixdenken verwenden! Ich habe Matrizen nicht gut gelernt und Numpy kann keine nichtlinearen Gleichungen lösen, also ... ich weiß auch nicht, wie ich das machen soll!

sympy

ist Sage und Z3 unterlegen, kann aber auch Gleichungen sehr gut lösen!

from sympy import *
x = symbols('x')
y = symbols('y')
res = solve([x+y-3,x-y-1],[x,y])[0]
print(res)
Nach dem Login kopieren

sage

sage kann sowohl lineare als auch nichtlineare Gleichungen lösen. Es kann als Artefakt in der Welt der Gleichungslösung bezeichnet werden, aber der Ausdruck unterstützt keine Bitoperationen wie: und oder Nicht, Rest und XOR. Gleichungen, in denen Bitoperationen auftreten, können nur mit z3 gelöst werden, um Einschränkungen zu schaffen! Die Vorteile von Sage liegen ebenfalls auf der Hand: Ausdrücke sind einfach und leicht zu schreiben und die Berechnungsgeschwindigkeit ist hoch!
Online-Sage-Löser

var('x y')
solve([x**3+y**2+666==142335262,x**2-y==269086,x+y==1834],[x,y])
Nach dem Login kopieren

z3

z3 wird auch als Constraint-Löser bezeichnet und kann zum problemlosen Lösen jeder Gleichung verwendet werden! Da Windows jedoch nicht einfach zu installieren ist, führe ich es grundsätzlich unter linux aus, das sowohl Python2 als auch Python3 unterstützt! Die Idee ist ganz einfach:

  • Erstellen Sie zuerst die symbolische Variable des Typs, den Sie benötigen

  • und initialisieren Sie dann eine Einschränkung,

  • Einschränkungen hinzufügen

  • Bestimmen Sie abschließend, ob die Einschränkungen Lösungen haben, und lösen Sie sie nach Variablen auf

Die häufig verwendeten Funktionen sind unten aufgeführt. z3-Solver-Dokument

# 符号变量类型
Int('x')
Real('x')
Bool('x')
BitVec('x',N) # N bit的符号变量,用于位操作
BitVecVal(num,N) # N bit的数据 num
# 初始化约束器
solver = Solver()
# 添加约束
solver.add(x+y==10,x-y==0)
# 求解约束
solver.check()
ans = solver.mode()

# 初始化多个符号变量
x = [Int('x%d' % i) for i in range(n)]
# 取结果中某个变量的值
value = ans[x].as_long()
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEinführung in Techniken zum Lösen von Gleichungen in Python (Codebeispiele). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!