• 高等数学以及Python 实现


    一:第一章:

    基本初等函数:

     1 import numpy as np
     2 import pandas as pd
     3 import matplotlib.pyplot as plt
     4 
     5 import warnings
     6 warnings.filterwarnings('ignore')  #不发出警告
     7 
     8 #映射与函数
     9 #幂函数
    10 if 0:
    11     x = np.linspace(-np.pi,2*np.pi,num = 50)
    12     y = x**2
    13 
    14     plt.scatter(x,y,marker='.')
    15     plt.plot(x,y)
    16 
    17     #辅助线
    18     plt.axvline(0,color ='cyan',linestyle = '--',alpha = 0.8)
    19     plt.axhline(0,color='cyan',linestyle='--',alpha = 0.8)
    20 
    21 
    22     plt.show()
    23     pass
    24 #指数函数
    25 if 0:
    26     x = np.linspace(-np.pi,2*np.pi,num = 50)
    27     y = 2**x  #指数函数
    28 
    29     plt.scatter(x,y,marker='.')
    30     plt.plot(x,y)
    31 
    32     plt.axhline(0,color='cyan',linestyle='--',alpha = 0.8)
    33     plt.axvline(0,color='cyan',linestyle='--',alpha = 0.8)
    34 
    35     plt.show()
    36     pass
    37 
    38 #对数函数
    39 if 0:
    40     x = np.linspace(-np.pi,2*np.pi,num= 50)
    41     y = np.log2(x)
    42 
    43     plt.scatter(x,y,marker = '.')
    44     plt.plot(x,y)
    45 
    46     plt.axhline(0,color='cyan',linestyle = '--',alpha = 0.8)
    47     plt.axvline(0,color='cyan',linestyle = '--',alpha = 0.8)
    48 
    49     plt.show()
    50 
    51 
    52 
    53     pass
    54 
    55 #三角函数
    56 if 0:
    57     x = np.linspace(-np.pi,2*np.pi,num=50)
    58     y = np.sin(x)
    59 
    60     plt.scatter(x,y,marker ='.')
    61     plt.plot(x,y)
    62 
    63     plt.axhline(0,color = 'cyan',linestyle ='--',alpha = 0.8)
    64     plt.axvline(0,color='cyan',linestyle = '--',alpha = 0.8)
    65 
    66     plt.show()
    67 
    68     pass
    69 
    70 #反三角函数
    71 if 0:
    72     #f = arcsin(x)
    73     x = np.linspace(-np.pi,2*np.pi,num = 100)
    74     y = np.arccos(x)
    75 
    76     plt.scatter(x,y,marker = '.')
    77     plt.plot(x,y)
    78 
    79     plt.axhline(0,color='cyan',linestyle='--',alpha = 0.8)
    80     plt.axvline(0,color='cyan',linestyle='--',alpha = 0.8)
    81 
    82     plt.show()
    83     pass
    View Code

     

    数列 和函数的极限:

     1 import numpy as np
     2 import pandas as pd
     3 import matplotlib.pyplot as plt
     4 
     5 # import warnings
     6 # warnings.filterwarnings('ignore')  #不发出警告
     7 
     8 #数列  x/(x+1)  的极限
     9 if 0:
    10     x  = np.arange(50)
    11     y = x/(x+1)
    12 
    13     plt.scatter(x,y,marker = '.')
    14     plt.plot(x,y)
    15 
    16     plt.axvline(0,color='cyan',linestyle='--',alpha = 0.8)
    17     plt.axhline(0,color='cyan',linestyle='--',alpha = 0.8)
    18 
    19     plt.show()
    20 
    21     pass
    22 
    23 #函数的极限
    24 if 0:
    25     x = np.linspace(-2,2,num=100)
    26     y = x**2 -1
    27 
    28     plt.scatter(x,y,marker = '.')
    29     plt.plot(x,y)
    30 
    31     plt.axvline(0,color='cyan',linestyle='--')
    32     plt.axhline(0,color='cyan',linestyle='--')
    33 
    34     #极限值
    35     plt.axhline(-1,color='red',linestyle = '--')
    36     plt.show()
    37     pass
    38 
    39 
    40 #练习 :极限
    41 #函数的极限
    42 if 1:
    43     x = np.arange(1,50)
    44     y = (2*x+1)/x
    45 
    46     plt.scatter(x,y,marker = '.')
    47     plt.plot(x,y)
    48 
    49     # plt.axhline(2)  #默认颜色是类似于  cyan
    50     plt.axhline(2,color='red') #默认是直线
    51 
    52 
    53     plt.show()
    54     pass
    View Code

    二:第二章:

    导数与微分:

     1 import  numpy as np
     2 import pandas as pd
     3 import matplotlib.pyplot as plt
     4 
     5 #导数
     6 if 0:
     7     def f(x):
     8         return x**2
     9 
    10     plt.figure(figsize = (12,6))
    11     n = np.linspace(-10,10,num=50)
    12 
    13     plt.plot(n,f(n))
    14     plt.xlim(-10,10)
    15     # plt.ylim(-10,100)  #设置axes 的limits
    16 
    17     #画出两点一线
    18     plt.plot([2,5],[4,25],color='r')
    19 
    20     x_m = 2
    21     for  i in range(1,5):
    22         plt.plot([x_m,x_m+i],[f(x_m),f(x_m+i)],color='r')
    23 
    24 
    25 
    26 
    27 
    28 
    29 
    30     plt.show()
    31 
    32     pass
    33 
    34 #求函数在一点处的导数
    35 if 0:
    36     def f(x):
    37         return x ** 2
    38     def ds(x,d):
    39         '''
    40 
    41         :param x: 选取一点
    42         :param d: 向右偏离x 的距离
    43         :return: 斜率
    44         '''
    45         y1 = f(x)
    46         y2 = f(x+d)
    47         return (y2-y1)/d
    48 
    49     for i in np.linspace(1,0,num=1000,endpoint=False): #endpoint 可以控制是否要右端点
    50         ret = ds(2,i) #求 在 f(x)=x^2  当x = 10 时的导数
    51         print("当2 偏{:.3f} 个单位的时候,直线的斜率是{:.3f}".format(i,ret) )
    52     pass
    53 #图示
    54 if 0:
    55     def f(x):
    56         return x**2
    57     n = np.linspace(-10,10,num = 50)
    58     plt.plot(n,f(n))
    59 
    60     plt.scatter(2,4)
    61     plt.plot(n,4*n-4)
    62 
    63     plt.show()
    64 
    65     pass
    66 
    67 
    68 #
    69 if 0:
    70     def f_(x):
    71         return 1 - 10 * x + 6 * x ** 2 - (1 + x ** 2) / (2 * x ** 2) + 3 * np.cos(x) * x + 3 * np.sin(x)
    72 
    73     def f(x):
    74         return 2*x**3 -5*x**2 + 3*x*np.sin(x) + (x**2 +1)/(2*x) -7
    75 
    76     x = np.linspace(10,0,num=100,endpoint=False)
    77     plt.figure(figsize=(12,6))
    78     plt.plot(x,f(x))
    79 
    80     m= n = 6
    81     plt.scatter(m,f(m))
    82 
    83     plt.plot(x,f_(x))
    84     plt.show()
    85     pass
    View Code

    泰勒公式:

    导数与微分的应用:

    单调性和凸凹性

      单调性判断:f'(x) >0 增  反之减

      凸凹形 :f''(x) >0 凹 反之 凸

    方程的近似解

      二分法:

       切线法: 

     1 import numpy as np
     2 import pandas as pd
     3 import matplotlib.pyplot as plt
     4 
     5 #函数的单调性和 曲线的凸凹性
     6 if 0:
     7     def f1(x):
     8         return 2*x**3 - 9*x**2 +12*x -3
     9 
    10     x =np.linspace(-10,10,num= 100)
    11     plt.plot(x,f1(x))
    12 
    13     #辅助线
    14     plt.axvline(0,color = 'gray',linestyle='--',alpha =0.8)
    15     plt.axhline(0,color = 'gray',linestyle='--',alpha =0.8)
    16 
    17 
    18 
    19     plt.show()
    20     pass
    21 
    22 #二分法求解
    23 if 0:
    24     def f(x):
    25         return x**3 + 1.1*x**2 +0.9*x -1.4
    26     x = np.linspace(-10,10,num=100)
    27     plt.plot(x,f(x))
    28 
    29     plt.axvline(0,color='cyan',linestyle='--')
    30     plt.axhline(0,color='cyan',linestyle='--')
    31     #二分法
    32 
    33     res_ls=[0,1]
    34     for i in range(10):
    35         mid = (res_ls[0] +res_ls[1])/2
    36         if f(mid)*f(0) < 0:
    37             res_ls[1] = mid
    38         else:
    39             res_ls[0] = mid
    40         print("第{} 次循环,此时的区间为 {} !".format(i+1,res_ls))
    41     pass
    42 
    43 #切线法求解
    44 if 1:
    45     def f(x):
    46         return x**3 + 1.1*x**2 +0.9*x -1.4
    47     #f(x)  在0 -1  单调递增
    48 
    49     plt.xlim([0,1])
    50     plt.ylim([f(0),f(1)])
    51 
    52     x = np.linspace(0,1,num=100)
    53     plt.axvline(0,color='cyan',linestyle='--')
    54     plt.axhline(0,color='cyan',linestyle='--')
    55     plt.plot(x,f(x))
    56 
    57 
    58     #切线法
    59     res = 1
    60     #f(x) 的导数
    61     def f_1(x):
    62         return 3*x**2 +2.2*x +0.9
    63     for i in range(10):
    64         p_Pre = res
    65         res = res - f(res)/f_1(res)
    66         print("第{}次循环的估计值为{}".format(i+1,res))
    67         plt.plot([p_Pre,res],[f(p_Pre),0])
    68     pass
    69 
    70 plt.show()
    导数的应用_二分法和切线法 求近似解

    三:第三章:不定积分,定积分

    不定积分:

    不定积分的方法:

    换元法

    分部积分法

    小结:

    定积分:

    定积分的解法:

    牛顿-莱布尼茨公式:

    换元法与分部积分法:

    定积分的应用:

    1,计算图形的面积

    2,计算体积:

     1 import numpy as np
     2 import pandas as pd
     3 import matplotlib.pyplot as plt
     4 
     5 #定积分的求解
     6 if 0:
     7     def f(x):
     8         return x**2
     9 
    10     x = np.linspace(-1,2)
    11     plt.plot(x,f(x))
    12     plt.axhline(0,color='cyan',linestyle='--')
    13     plt.axvline(0,color='cyan',linestyle='--')
    14     plt.axvline(1,color='cyan',linestyle='--')
    15     #填充图形
    16     x1 = np.linspace(0,1)  #要填充的x
    17     plt.fill_between(x1,0,f(x1),color='k',alpha =0.4) #第一个参数是 要覆盖的区域,第二个是下限,第三个是上限
    18 
    19     #上面都是在画图,下面计算
    20     area =0
    21     for i in range(len(x1))[:-1]: #去掉最后一个
    22         mid_idx = (x1[i] +x1[i+1])/2
    23         area += (x1[i+1]-x1[i])*f(mid_idx)
    24     print(area)  #0.3332986255726781
    25     pass
    26 
    27 #计算图形的面积:
    28 if 0:
    29     def f1_1(x):
    30         return (2*x)**0.5
    31     def f1_2(x):
    32         return -(2*x)**0.5
    33 
    34     def f2(x):
    35         return x-4
    36     x = np.linspace(0,10,num=100)
    37     plt.plot(x,f1_1(x),'r',
    38              x,f1_2(x),'g',
    39              x,f2(x),'b')
    40 
    41     plt.xlim([-2,10])
    42     plt.ylim([-6,6])
    43     #辅助线
    44     plt.axvline(0,color='cyan',linestyle='--')
    45     plt.axhline(-2,color='cyan',linestyle='--')
    46     plt.axhline(4,color='cyan',linestyle='--')
    47     #下面是计算
    48     y = np.linspace(-2,4,num=100)
    49     area = 0
    50     for i in range(len(y))[:-1]:
    51         y_midIdx = (y[i]+y[i+1])/2
    52         area += (y_midIdx+4 -y_midIdx**2/2)*(y[i+1] - y[i])
    53     print(area) #18.000918273645556
    54     # 真实的解 为  18
    55     pass
    56 
    57 #计算图形的面积(0-np.pi/2)
    58 if 0:
    59     def f(x):
    60         return (x +np.sin(x)) /(1+np.cos(x))
    61     x = np.linspace(-0.8*np.pi,0.8*np.pi,num=100)
    62     plt.plot(x,f(x))
    63 
    64     #辅助线
    65     plt.axhline(0,color ='cyan',linestyle='--')
    66     plt.axvline(0,color ='cyan',linestyle='--')
    67     plt.axvline(np.pi/2,color ='cyan',linestyle='--')
    68 
    69     x1 = np.linspace(0,np.pi/2,num=100)
    70     plt.fill_between(x1,0,f(x1),color ='k',alpha=0.4)
    71 
    72     #计算
    73     area = 0
    74     for i in range(len(x1))[:-1]:
    75         mid_idx = (x1[i]+x1[i+1])/2
    76         area += (x1[i+1] -x1[i])*f(mid_idx)
    77     print(area) #1.5707693613636802
    78 
    79     pass
    80 
    81 
    82 plt.show()
    定级分的求解_求解图形的面积

    四:第四章:多元函数与重积分

    多元函数:

    偏导数:

    全微分:

    重积分:

    二重积分:

    二重积分的求解:

    1,直角坐标系

    2,极坐标系

    三重积分及解法:

     1 import numpy as np
     2 import pandas as pd
     3 import matplotlib.pyplot as plt
     4 
     5 from mpl_toolkits.mplot3d import axes3d
     6 
     7 #画  z = sin(x+y)  的图
     8 if 1:
     9     fig = plt.figure()
    10     ax = fig.gca(projection='3d')
    11 
    12     x = np.linspace(-np.pi,np.pi)
    13     y = np.linspace(-np.pi,np.pi)
    14     x,y = np.meshgrid(x,y)
    15     z = np.sin(x+y)
    16 
    17 
    18     ax.view_init(elev=30)
    19     # cmap = 'Reds'
    20     # cmap = 'Greens'
    21     # cmap = 'Blues'
    22     ax.plot_surface(x,y,z,rstride=2,cstride=2,cmap='Greens', alpha=0.9)
    23 
    24 plt.show()
    使用Matplotlib 进行3d绘图
     1 import numpy as np
     2 import pandas as pd
     3 import matplotlib.pyplot as plt
     4 
     5 from mpl_toolkits.mplot3d import axes3d
     6 
     7 #画  z = sin(x+y)  的图
     8 if 0:
     9     fig = plt.figure()
    10     ax = fig.gca(projection='3d')
    11 
    12     x = np.linspace(-np.pi,np.pi)
    13     y = np.linspace(-np.pi,np.pi)
    14     x,y = np.meshgrid(x,y)
    15     z = np.sin(x+y)
    16 
    17 
    18     ax.view_init(elev=30)
    19     # cmap = 'Reds'
    20     # cmap = 'Greens'
    21     # cmap = 'Blues'
    22     ax.plot_surface(x,y,z,rstride=2,cstride=2,cmap='Greens', alpha=0.9)
    23 
    24 
    25 #画 z = x**2 +3*x*y +y**2  区域  x【-5,5】y【-5,5】
    26 if 1:
    27     fig = plt.figure()
    28     ax = fig.gca(projection='3d')
    29     # ax.view_init(elev=None,azim=None)
    30 
    31     x = np.linspace(-5,5)
    32     y = np.linspace(-5,5)
    33     x,y = np.meshgrid(x,y)
    34     z = x**2 +3*x*y +y**2
    35     #画线框架图
    36     ax.plot_wireframe(x,y,z,rstride=2,cstride=2,color='k',alpha=0.8,linewidth=0.5)
    37     
    38     #等高线  contour  是登高的意思 
    39     ax.contourf(x, y, z, zdir='z', offset=-40, cmap='Blues', alpha=0.7)
    40     ax.contourf(x, y, z, zdir='x', offset=-6, cmap='Blues', alpha=0.7)
    41     ax.contourf(x, y, z, zdir='y', offset=6, cmap='Blues', alpha=0.7)
    42 
    43     ax.scatter(1, 2, 11, s=20, c='k')
    44     # 曲面上的点(1,2,11)
    45 
    46     def fxz(x):
    47         return 2 ** x + 6
    48 
    49 
    50     xn1 = np.linspace(1, 2, num=20)
    51     yn1 = np.ones_like(xn1) * 2
    52     zn1 = fxz(xn1)
    53     ax.plot(xn1, yn1, zn1, '-r')
    54 
    55 
    56     # 将y看成常量,则y=2,也就是在y=2这个面上,xz组成的函数求导
    57     def fyz(y):
    58         return 2 ** y + 3
    59 
    60 
    61     yn2 = np.linspace(2, 3, num=20)
    62     xn2 = np.ones_like(xn1) * 1
    63     zn2 = fyz(yn2)
    64     ax.plot(xn2, yn2, zn2, '-b')
    65     # 将x看成常量,则x=1,也就是在x=1这个面上,yz组成的函数求导
    66     pass
    67 plt.show()
    View Code
     1 import numpy as np
     2 import pandas as pd
     3 import matplotlib.pyplot as plt
     4 
     5 from mpl_toolkits.mplot3d import axes3d
     6 
     7 #画  z = sin(x+y)  的图
     8 if 0:
     9     fig = plt.figure()
    10     ax = fig.gca(projection='3d')
    11 
    12     x = np.linspace(-np.pi,np.pi)
    13     y = np.linspace(-np.pi,np.pi)
    14     x,y = np.meshgrid(x,y)
    15     z = np.sin(x+y)
    16 
    17 
    18     ax.view_init(elev=30)
    19     # cmap = 'Reds'
    20     # cmap = 'Greens'
    21     # cmap = 'Blues'
    22     ax.plot_surface(x,y,z,rstride=2,cstride=2,cmap='Greens', alpha=0.9)
    23 
    24 #画 z = x**2 +3*x*y +y**2  区域  x【-5,5】y【-5,5】
    25 if 0:
    26     fig = plt.figure()
    27     ax = fig.gca(projection='3d')
    28     # ax.view_init(elev=None,azim=None)
    29 
    30     x = np.linspace(-5,5)
    31     y = np.linspace(-5,5)
    32     x,y = np.meshgrid(x,y)
    33     z = x**2 +3*x*y +y**2
    34     #画线框架图
    35     ax.plot_wireframe(x,y,z,rstride=2,cstride=2,color='k',alpha=0.8,linewidth=0.5)
    36 
    37     #等高线  contour  是登高的意思
    38     ax.contourf(x, y, z, zdir='z', offset=-40, cmap='Blues', alpha=0.7)
    39     ax.contourf(x, y, z, zdir='x', offset=-6, cmap='Blues', alpha=0.7)
    40     ax.contourf(x, y, z, zdir='y', offset=6, cmap='Blues', alpha=0.7)
    41 
    42     ax.scatter(1, 2, 11, s=20, c='k')
    43     # 曲面上的点(1,2,11)
    44 
    45     def fxz(x):
    46         return 2 ** x + 6
    47 
    48 
    49     xn1 = np.linspace(1, 2, num=20)
    50     yn1 = np.ones_like(xn1) * 2
    51     zn1 = fxz(xn1)
    52     ax.plot(xn1, yn1, zn1, '-r')
    53 
    54 
    55     # 将y看成常量,则y=2,也就是在y=2这个面上,xz组成的函数求导
    56     def fyz(y):
    57         return 2 ** y + 3
    58 
    59 
    60     yn2 = np.linspace(2, 3, num=20)
    61     xn2 = np.ones_like(xn1) * 1
    62     zn2 = fyz(yn2)
    63     ax.plot(xn2, yn2, zn2, '-b')
    64     # 将x看成常量,则x=1,也就是在x=1这个面上,yz组成的函数求导
    65     pass
    66 plt.show()
    总的代码
  • 相关阅读:
    32位和64位系统区别及int字节数
    进程的三种状态及转换
    已知二叉树的前序/后序遍历和中序遍历,求后序/前序遍历
    一步一步写算法
    Ubuntu中APache+mod_pyhon
    JAVA SOCKET
    TCP连接 断开
    mfc 创建一个C++ 类
    mfc 类的析构函数
    mfc 类对象的引用
  • 原文地址:https://www.cnblogs.com/zach0812/p/11587142.html
Copyright © 2020-2023  润新知