这篇文章主要介绍“怎么用Python做数学建模”,在日常操作中,相信很多人在怎么用Python做数学建模问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python做数学建模”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
在珠晖等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站制作 网站设计制作定制制作,公司网站建设,企业网站建设,品牌网站制作,全网整合营销推广,外贸网站制作,珠晖网站建设费用合理。
数学建模中,大多数人都在用MATLAB,但MATLAB不是一门正统的计算机编程语言,而且速度慢还收费,最不能忍受的就是MATLAB编辑器不支持代码自动补全。python对于数学建模来说,是个非常好的选择。python中有非常著名的科学计算三剑客库:numpy,scipy和matplotlib,三者基本代替MATLAB的功能,完全能够应对数学建模任务。
下面列举几个python解决数学建模的例子:
线性规划问题的求最大最小值问题
1 2 3 4 5 6 7 8 9 10 11 12 | 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))
|
多项式的最小二乘法曲线拟合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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()
|
方程求导
1 2 3 4 5 6 7 8 | 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))
|
求不定积分
1 2 3 4 5 6 7 8 9 | 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))
|
求解非线性方程组
1 2 3 4 5 6 7 8 9 10 11 | 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))
|
求解线性方程组
1 2 3 4 5 6 7 8 9 10 11 | 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))
|
到此,关于“怎么用Python做数学建模”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
当前标题:怎么用Python做数学建模
网站链接:
http://cdkjz.cn/article/jgshij.html