zoukankan      html  css  js  c++  java
  • numpy求导数

    # 直线运动问题
    # 对于f(X) = x**2
    
    def f(x):
        return x**2
    
    plt.figure(figsize = (12,6))
    n = np.linspace(-10,10,num = 50)
    plt.plot(n,f(n))
    plt.xlim(-11,11)
    plt.ylim(-10,110)
    
    # 选中曲线上两个点,m(2,4),n(5,25)
    plt.plot([2,5],[4,25],color = 'r')
    print('直线斜率为%.2f' % ((25-4)/(5-2)))
    print('-------')
    
    # 求m的导数
    
    x_m = 2
    y_m = f(x_m)
    plt.plot(n,f(n))
    plt.xlim(1,7)
    plt.ylim(1,49)
    
    for i in range(4,0,-1):
        plt.plot([x_m,x_m + i],[y_m,f(x_m + i)],color = 'r')
        print('直线斜率为%.2f' % ((f(x_m + i)-y_m)/(x_m + i-x_m)))
    
    # f(x) = x**2
    # 原始点 m,f(m)
    # 增量为i,直线终点 → m+i,f(m+i)
    # 斜率 → (f(m+i)-f(m))/i
    
    def ds(xm,n):
        '''
        该函数为求f(x) = x**2的导数
        xm:m点的x值
        n:m点x往右偏移的距离
        函数最后导出 → m点与m偏移n距离后点的连线的斜率
        '''
        y1 = f(xm)
        y2 = f(xm+n)
        return (y2-y1)/n
    
    for i in np.linspace(1,0,num = 1000,endpoint = False):
        print('偏移%.2f个单位距离时,斜率为:%.5f' % (i,ds(2,i)))
    # 斜率为4
    # 切线函数为:y = 4*x - 4
    
    # 图示
    
    n = np.linspace(-10,10,num = 50)
    plt.plot(n,f(n))
    plt.xlim(-11,11)
    plt.ylim(-10,110)
    
    plt.scatter(2,4)
    plt.plot(n,4*n - 4)
    # m点切线
  • 相关阅读:
    redis实现与分析
    NULL, '',0 '0'的区别
    Linux strace命令
    strcpy和memcpy的区别
    图书推荐
    php与mysql通讯那点事
    linux命令汇总
    linux系统信息查询及相关概念
    LNMP zabbix安装
    lftp查看文件时间与登录服务查看文件时间相差8小时
  • 原文地址:https://www.cnblogs.com/yunshangyue71/p/13584319.html
Copyright © 2011-2022 走看看