总结
豆包 AI 助手文章总结

数学建模可以用Python吗

爱喝马黛茶的安东尼
发布: 2019-06-18 13:48:30
原创
19366人浏览过

数学建模中,大多数人都在用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视频教程

立即学习Python免费学习笔记(深入)”;

多项式的最小二乘法曲线拟合

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))
登录后复制

求解线性方程组

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吗的详细内容,更多请关注php中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号