Python peut-il être utilisé pour la modélisation mathématique ?

爱喝马黛茶的安东尼
Libérer: 2019-06-18 14:32:29
original
18324 Les gens l'ont consulté

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.

Python peut-il être utilisé pour la 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))
Copier après la connexion

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,&#39;*&#39;,label = &#39;原始数据&#39;)
plt.plot(z1,yvalue,label = &#39;拟合曲线&#39;)
plt.xlabel(&#39;x axis&#39;)
plt.ylabel(&#39;y axis&#39;)
plt.legend(loc = 4 )
plt.tittle(&#39;多项式拟合&#39;)
plt.show()
Copier après la connexion

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))
Copier après la connexion

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))
Copier après la connexion

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))
Copier après la connexion

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))
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal