>  기사  >  백엔드 개발  >  Python을 수학적 모델링에 사용할 수 있습니까?

Python을 수학적 모델링에 사용할 수 있습니까?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-06-18 13:48:3018222검색

수학적 모델링에서는 대부분의 사람들이 MATLAB을 사용하고 있지만 MATLAB은 정통 컴퓨터 프로그래밍 언어가 아니며, 느리고 비용이 많이 드는 점은 MATLAB 편집기가 자동 코드 완성을 지원하지 않는다는 것입니다. Python은 수학적 모델링에 매우 좋은 선택입니다. Python에는 매우 유명한 세 가지 과학 컴퓨팅 라이브러리인 numpy, scipy 및 matplotlib가 있습니다. 이 세 가지는 기본적으로 MATLAB의 기능을 대체하며 수학적 모델링 작업을 완벽하게 처리할 수 있습니다.

Python을 수학적 모델링에 사용할 수 있습니까?

다음은 수학적 모델링을 해결하는 Python의 몇 가지 예입니다.

선형 계획법 문제의 최대 및 최소 문제 찾기

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

관련 권장 사항: "python 비디오 튜토리얼"

최소 2차 다항식 곱셈 곡선 피팅

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

방정식 유도

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

부정 적분 찾기

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

비선형 방정식 풀기

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

선형 방정식 풀기

rrre 에

위 내용은 Python을 수학적 모델링에 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.