zoukankan      html  css  js  c++  java
  • Python数值计算:一 使用Pylab绘图(2)

    1.2.3绘制曲线、图示

    对于由指数函数和正弦函数相乘形成的新函数:

    [y = e ^{ax}sinbx ]

    当a = -0.5,b = 2时,画出函数曲线,在曲线上标记极大值。

    a = -0.5
    b = 2
    x = arange(0, 10, 0.01)
    y = exp(a * x)*sin(b*x)
     #显示曲线
    plot(x,y,label = "$y=e^{ax}sin^{bx}$ 
    $a=-0.5,b=2$", color = "red")
    legend() #显示图示
     #求极值
    ym = []
    xm = []
    ym.append(y.max())
    xm.append(x[y.argmax()])
     #绘制极值和极值杆线
    stem(xm,ym, "--")
    txt = "({0},{1})".format(str(xm[0]),str(ym[0]))
    text(xm[0], ym[0], txt)
     #显示网格
    grid()
    title(u"函数曲线")
    xlabel(u"横坐标")
    ylabel(u"纵坐标")
    

    结果如图
    曲线和图示

    1.2.4绘制曲线组和极值函数

    绘制当 b = 0.5 , a = -0.6到0的7个值,间隔为0.1,画出函数曲线族,画极大值杆线,画出极大值的分布曲线。
    对于函数任意连续函数,其导数 = 0处为其极值。$$y = e ^{ax}sinbx$$的导数为:

    [y = ae^{ax}sinbx + be^{ax}cosbx ]

    [y^、 = 0 ]

    则得

    [tanbx_m + frac ba = 0 ]

    [x_m = frac {1}{b}(npi - arctanfrac ba), n = 0,1,2,... ]

    对于第一个极值,n取0。

    x = arange(0,20,0.2)
    b = 0.5
    a = arange(-0.6,0,0.1)
    A,Y = meshgrid(a,x)
    Y = exp(A*X)*sin(b*X)
    plot(x,Y)
    grid()
    legend(a)
     #绘制极值杆线,不如matlab方便
    ym = []
    offset = []
    for col in tY:
        ym.append(col.max())
        offset.append(col.argmax())   
    xm = []
    for i in offset:
        xm.append(x[i])
    stem(xm,ym,"--")
     #绘制极值函数图形
    a = arange(-1,-0.001,0.001)
    xm = -arctan(b/a)/b
    ym = exp(a * xm) * sin(b * xm)
    plot(xm, ym,"--")
     #~~
    title(u"函数曲线族" + "$y=e^{ax}sinbx$")
    xlabel("$itx$")
    ylabel("$ity$")
    

    曲线族

  • 相关阅读:
    .net core
    asp.net core之abp框架
    C#
    c#
    C#
    C#
    C#
    技术术语
    mysql
    006.内测.情景之迷你财务记账
  • 原文地址:https://www.cnblogs.com/abcat/p/3619397.html
Copyright © 2011-2022 走看看