Maison >développement back-end >Tutoriel Python >Python peut-il être utilisé pour la modélisation mathématique ?
En modélisation mathématique, la plupart des gens utilisent MATLAB, mais MATLAB n'est pas un langage de programmation informatique orthodoxe, et il est lent et payant. Le plus intolérable est que l'éditeur MATLAB ne prend pas en charge la complétion automatique du code. Python est un très bon choix pour la modélisation mathématique. Il existe trois bibliothèques de calcul scientifique très connues en Python : numpy, scipy et matplotlib. Les trois remplacent essentiellement les fonctions de MATLAB et sont entièrement capables de gérer des tâches de modélisation mathématique.
Voici quelques exemples de modélisation mathématique de résolution Python :
Trouver le problème maximum et minimum des problèmes de programmation linéaire
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))
Recommandations associées : "Tutoriel vidéo Python"
Ajustement de la courbe des moindres carrés des polynômes
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()
Eq. la dérivée
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))
Trouver l'intégrale indéfinie
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))
Résoudre le système d'équations non linéaires
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))
Résoudre le système d'équations linéaires
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))
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!