Home >Backend Development >Python Tutorial >Can Python be used for mathematical modeling?

Can Python be used for mathematical modeling?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-06-18 13:48:3018336browse

In mathematical modeling, most people are using MATLAB, but MATLAB is not an orthodox computer programming language, and it is slow and charges a fee. The most intolerable thing is that the MATLAB editor does not support automatic code completion. Python is a very good choice for mathematical modeling. There are three very famous scientific computing libraries in Python: numpy, scipy and matplotlib. The three basically replace the functions of MATLAB and are fully capable of handling mathematical modeling tasks.

Can Python be used for mathematical modeling?

Here are a few examples of python solving mathematical modeling:

Finding the maximum and minimum problem of linear programming problem

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))

Related recommendations: "python video tutorial"

Least squares curve fitting of polynomials

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()

Equation Find the derivative

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))

Find the indefinite 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))

Solve the nonlinear system of equations

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))

Solve System of linear equations

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))

The above is the detailed content of Can Python be used for mathematical modeling?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn