• 用python做数学建模


    前言

      

      这里是用python解决数学建模的一些问题,用到的是python3.x,scipy,numpy和matplotlib。

      先补充一些基本的数据知识。

    1、numpy.array()

      在基础操作里,array和list是不区分的(在索引和删除一些操作还有运行时间上会有区别),python也没有array这个数据结构。array是由numpy这个数值计算工具包定义的。因为很多操作必须要求是在array上进行(list会出错)所以需要掌握。以下参考官方文档。

    import numpy as np

    #向上转型
    >>>np.array([1,2,3.0])
    array([1. ,2. ,3.])        
    
    #多维度
    >>> np.array([[1, 2], [3, 4]])
    array([[1, 2],
           [3, 4]])
    
    
    #预设维度
    >>> np.array([1, 2, 3], ndmin=2)
    array([[1, 2, 3]])
    
    
    #复数
    >>> np.array([1, 2, 3], dtype=complex)
    array([ 1.+0.j,  2.+0.j,  3.+0.j])
    
    
    #多种数据类型
    >>> x = np.array([(1,2),(3,4)],dtype=[('a','<i4'),('b','<i4')])
    >>> x['a']
    array([1, 3])

    正文

      补充完一些基础的数据知识就开始接触真正的数学建模用到的类型知识了。

    一、线性规划

      选择scipy.optimize.linprog进行线性规划问题的求最大最小值问题。学习材料:官方文档。

      这里不讨论具体问题,只涉及数学方程转换成函数语言进行求解的过程,参考书籍:数学建模算法与应用。

     1 '''
     2 max: z = 4x1 + 3x2
     3 st:      2x1 + 3x2<=10
     4            x1 + x2 <=8
     5            x2 <= 7
     6            x1,x2 > 0
     7 '''
     8 
     9 from scipy.optimize import linprog
    10 
    11 c = [4,3]        #默认linprog求解的是最小值,若求最大值,此处c取反即可得到最大值的相反数。
    12 A = [[2,3],[1,1]]
    13 b = [10,8]
    14 x1_bounds = [0,None]
    15 x2_bounds =[0,7]
    16 res = linprog(c,A,b,bounds=(x1_bounds,x2_bounds))

      三个变量的求解方法相同,此处不再赘述。

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

      利用numpy.polyfit。

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

    没有写完,暂时先写这么多吧。

    :)

      

      

  • 相关阅读:
    学习笔记-Python-Django-环境搭建、路由
    Python数据科学-技术详解与商业实践(文末附资源)
    09 Django 模型(数据库)
    pandas入门
    08 Django 模板进阶
    Django学习中常见问题
    07 Django 模板
    06 Django URL name详解
    05 Django 视图与网址进阶
    04 Django 视图与网址-urls.py
  • 原文地址:https://www.cnblogs.com/deleteme/p/7118286.html
Copyright © 2020-2023  润新知