In der mathematischen Modellierung verwenden die meisten Leute MATLAB, aber MATLAB ist keine orthodoxe Computerprogrammiersprache, und sie ist langsam und kostenpflichtig. Das Unerträglichste ist, dass der MATLAB-Editor keine automatische Code-Vervollständigung unterstützt. Python ist eine sehr gute Wahl für die mathematische Modellierung. Es gibt drei sehr bekannte wissenschaftliche Computerbibliotheken in Python: Numpy, Scipy und Matplotlib. Die drei ersetzen grundsätzlich die Funktionen von MATLAB und sind vollständig in der Lage, mathematische Modellierungsaufgaben zu bewältigen.
Hier sind einige Beispiele für die Lösung mathematischer Modelle mit Python:
Finden des Maximum- und Minimumproblems linearer Programmierprobleme
max: z = 4x1 + 3x2 st: 2x1 + 3x2<=10 x1 + x2 <=8 x2 <= 7 x1,x2 > 0 from scipy.optimize import linprog c = [4,3] #默认linprog求解的是最小值,若求最大值,此处c取反即可得到最大值的相反数。 A = [[2,3],[1,1]] b = [10,8] x1_bounds = [0,None] x2_bounds =[0,7] res = linprog(c,A,b,bounds=(x1_bounds,x2_bounds))
Verwandte Empfehlungen: „Python-Video-Tutorial“
Kleinste-Quadrate-Kurvenanpassung von Polynomen
import numpy as np import matplotlib.pyplot as plt x = np.arange(1990,1997,1) y = np.array([70 ,122 ,144 ,152, 174, 196, 202]) z1 = ployfit(x,y,1) #之前画过原始数据,数据走向为ax+b类型。故采用一次多项式拟合 p1 = np.ploy1d(z1) yvalue = p1(x) plt.plot(x,y,'*',label = '原始数据') plt.plot(z1,yvalue,label = '拟合曲线') plt.xlabel('x axis') plt.ylabel('y axis') plt.legend(loc = 4 ) plt.tittle('多项式拟合') plt.show()
Gleichung finden Ableitung
from __future__ import print_function from __future__ import division import numpy as np import scipy as sp import scipy.misc def f(x): return 2*x*x + 3*x + 1 print(sp.misc.derivative(f, 2))
Finde das unbestimmte Integral
from __future__ import print_function from __future__ import division import numpy as np import scipy as sp import scipy.integrate f = lambda x : x**2 print(sp.integrate.quad(f, 0, 2)) print(sp.integrate.fixed_quad(f, 0, 2))
Löse das nichtlineare Gleichungssystem
from __future__ import print_function from __future__ import division import numpy as np import scipy as sp import scipy.optimize def f(x): return [5*x[1] + 3, 4*x[0]*x[0], x[1]*x[2] - 1.5] ans = sp.optimize.fsolve(f, [0, 0, 0]) print(ans) print(f(ans))
System linearer Gleichungen lösen
from __future__ import print_function from __future__ import division import numpy as np import scipy as sp import matplotlib.pylab as plt import scipy.linalg a = np.array([[1, 3, 5], [2, 5, 1], [2, 3, 8]]) b = np.array([10, 8, 3]) print(sp.linalg.solve(a, b)) # print(sp.linalg.inv(a).dot(b))
Das obige ist der detaillierte Inhalt vonKann Python für die mathematische Modellierung verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!