수학적 모델링에서는 대부분의 사람들이 MATLAB을 사용하고 있지만 MATLAB은 정통 컴퓨터 프로그래밍 언어가 아니며, 느리고 비용이 많이 드는 점은 MATLAB 편집기가 자동 코드 완성을 지원하지 않는다는 것입니다. Python은 수학적 모델링에 매우 좋은 선택입니다. Python에는 매우 유명한 세 가지 과학 컴퓨팅 라이브러리인 numpy, scipy 및 matplotlib가 있습니다. 이 세 가지는 기본적으로 MATLAB의 기능을 대체하며 수학적 모델링 작업을 완벽하게 처리할 수 있습니다.
다음은 수학적 모델링을 해결하는 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,'*',label = '原始数据') plt.plot(z1,yvalue,label = '拟合曲线') plt.xlabel('x axis') plt.ylabel('y axis') plt.legend(loc = 4 ) plt.tittle('多项式拟合') 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!