这篇文章主要介绍”怎么用Python做数学建模”,在日常操作中,相信很多人在怎么用Python做数学建模问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“怎么用Python做数学建模”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
数学建模中,大多数人都在用MATLAB,但MATLAB不是一门正统的计算机编程语言,而且速度慢还收费,最不能忍受的就是MATLAB编辑器不支持代码自动补全.python对于数学建模来说,是个非常好的选择.python中有非常著名的科学计算三剑客库:numpy, scipy和matplotlib,三者基本代替MATLAB的功能,完全能够应对数学建模任务。
下面列举几个Python解决数学建模的例子:
<强>线性规划问题的求最大最小值问题强>
1
3
4 5 6
7 8 9
10 11 12
<代码>马克斯:z=4 x1 + 3 x2 代码>
<代码>圣:,,,,,2 x1 + 3 x2<=10 代码>
<代码>,,,,,,,,,,,代码> <代码> x1 + x2 & lt;=8 代码>
<代码>,,,,,,,,,,,代码> <代码> x2 & lt; 7=代码>
<代码>,,,,,,,,,,,代码> <代码> x1, x2祝辞0 代码>
<代码>从scipy。代码优化进口linprog >
<代码> c=(4 3),,,,,,,#默认linprog求解的是最小值,若求最大值,此c处取反即可得到最大值的相反数。代码>
<代码>=[[2、3],[1]]代码>
<代码> b=(10、8) 代码>
<代码> x1_bounds=[0,没有]代码>
<代码> x2_bounds=[0、7] 代码>
<代码> res=linprog (c, A, b,边界=(x1_bounds x2_bounds)) 代码>
<强>多项式的最小二乘法曲线拟合强>
1 2 3
4 5 6
7 8 9
10 11 12
13 14
<代码>进口numpy 代码> <代码> 代码> <代码> np 代码>
<代码>进口matplotlib。pyplot <代码>/<代码> 代码> <代码> plt 代码>
<代码> x=np.arange(1990、1997、1) 代码>
<代码> y=np。代码> <代码> 代码> <代码>数组((70,122,144,152,174,196,202])代码>
<代码> z1=ployfit (x, y, 1),#之前画过原始数据,数据走向为ax + b类型。故采用一次多项式拟合代码>
<代码> p1=np.ploy1d (z1) 代码>
<代码> yvalue=https://www.yisu.com/zixun/p1 (x) 代码>
<代码> plt.plot (x, y, 代码> <代码> & # 39;* & # 39;代码> <代码>标签=代码> <代码> & # 39;原始数据& # 39;代码> <代码>)代码>
<代码> plt。情节(z1、yvalue标签=代码> <代码> & # 39;拟合曲线& # 39;代码> <代码>)代码>
<代码> plt.xlabel(代码> <代码> & # 39;x轴# 39;代码> <代码>)代码>
<代码> plt.ylabel(代码> <代码> & # 39;y轴# 39;代码> <代码>)代码>
<代码> 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))
怎么用Python做数学建模