当前位置: 首页 > 科技观察

Python实现一阶二阶导数

时间:2023-03-14 00:27:05 科技观察

本文转载自微信公众号《python与大数据分析》,作者是一只小鸟。转载本文请联系python和大数据分析公众号.函数的和、差、积、商的推导规则u=u(x),v=v(x)(u+v)'=u'+v'(u-v)'=u'-v'(Cu)'=Cu'(uv)'=u'v+uv'(u/v)'=(u'v-uv')/v^2复合函数求导法则y=f(u),u=φ(v)复合函数y=f[φ(v)]的导数为dy/dx=dy/du*du/dx=f'(u)*φ'(v)(u-v+z)'=u'-v'+z',and(Cu)'=Cu'exam1:y=2*x*^3-5*x^2+3*x-7y'=6*x^2-10x+3+0exam2:f(x)=x^3+4cosx-sin(π/2)f'(x)=(x^3)'+(4cosx)'-(sin(π/2))'=3x^2-4sinx-0f'(π/2)=f'(x)|x=(π/2)=3x^2-4sinx=3*(π/2)^2-4sin(π/2)=3/4π^2-4exam3:y=√x*lnxy'=(√x)'*lnx+√x*(lnx)'=1/(2*√x)*lnx+√x*1/x=1/(√x)*(1/2*lnx+1)exam4:y=e^x(sinx+cosx)y'=(e^x)'(sinx+cosx)+e^x(sinx+cosx)'=e^x(sinx+cosx)+e^x(cosx-sinx)=2e^xcosx高阶导数y=f(x)y'=f'(x)y''=(y')'=d^2y/dx^2=d/dx(dy/dx)导数的应用:函数单调性通过函数的导数的值,可以判断函数的单调性、驻点和极值点:如果导数较大大于0,单调增加ically;如果导数小于0,则单调递减;导数为零的点d为函数驻点曲线的凹凸,设函数f(x)在I(1)区间内有二阶导数,在If''(x)>0,f(x)在I中是凹的;(2)f''(x)<0inI,f(x)在I中凸.#!/usr/bin/envpython#-*-coding:UTF-8-*-#_ooOoo_#o8888888o#88"”88#(|-_-|)#O\=/O#____/`---'\____#.'\\||//`.#/\\|||:|||//\#/_|||||-:-|||||-\#||\\-///||#|\_|''\---/''|_/|#\.-\__`-`___/-./#___`..'/--.--\`.__#.""'<`.___\_<|>_/___.'>'"".#||:`-\`.;`\_/`;.`/-`:||#\\`-.\___\/___/.-`//#==`-.____`-.___\_____/___.-`____.-'==#`=---=''''@Project:pythonalgorithms@File:Nderivatives.py@Author:无敌人生一醉@Date:2021/8/31:17'''importmatplotlib.pyplotaspltimportnumpyasnpimportmathimportsympyif__name__=='__main__':nderivativeplot()#f(x)=x^3+3x^2-24x-20#f'(x)=3x^2+6x-24#f''(x)=6x+6defnderivativeplot():plt.figure(figsize=(5,8))ax=plt.gca()#通过gca获取当前坐标轴:getcurrentaxisplt.rcParams['font.sans-serif']=['SimHei']#绘图中文plt.rcParams['axes.unicode_minus']=False#绘制负号x=np.linspace(-10,10,200)y=np.power(x,3)+3*np.power(x,2)-24*x-20yd=3*np.power(x,2)+6*x-24ydd=6*x+6label='函数曲线f(x)=x^3+3x^2-24x-20'plt.plot(x,y,label=label)label="导数f'(x)=3x^2+6x-24的曲线"plt.plot(x,yd,label=label)label="导数f''(x)=6x+6"的曲线plt.plot(x,ydd,label=label)#设置图片右边框和上边框不显示ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')#移动x,y轴的位置,即图片的下边框和左边框的位置#data表示x轴的位置由value设置,x轴绑定y的位置=0ax.spines['bottom'].set_position(('data',0))#axes表示以百分比的形式设置轴的位置,即绑定y轴到的位置x轴的50%#ax.spines['left'].set_position(('axes',0.5))ax.spines['left'].set_position(('data',0))plt.title("函数,一阶导数,二阶导数")plt.legend(loc='upperright')plt.show()