第一单元 用python学习微积分(五) 隐函数微分法和逆函数导数(下)- 反函数

第一单元 用python学习微积分(五) 隐函数微分法和逆函数导数(下)- 反函数,第1张

第一单元 用python学习微积分(五) 隐函数微分法和逆函数导数(下)- 反函数

本文内容来自学习麻省理工学院公开课:单变量微积分-隐函数微分法和逆函数导数-网易公开课

和麻省理工学院公开课:单变量微积分习题课-除法法则-网易公开课

一、反函数

1、定义

0, y^2 = x" src="https://latex.codecogs.com/gif.latex?y%20%3D%20x%5E%7B1/2%7D%2C%20x%3E0%2C%20y%5E2%20%3D%20x" />

通常

这些就是反函数了

例子:

    , 怎么知道 ?

方法是,交换x和y的值。 画出的图,两个不同的函数将通过x=y对称, 分别是

from sympy import *
import numpy as np 
import matplotlib.pyplot as plt 

x= symbols('x')
y = x**0.5
yarr = []
xarr = np.linspace(0 , 3 , 100 ) 
for xval in xarr:
    yval = y.subs(x,xval)
    yarr.append(yval)

y_nparr = np.array(yarr) 

plt.plot(xarr, y_nparr, color='b', label='y = x^0.5')
plt.plot(y_nparr,xarr , color='r', label='inverse function of "y = x^0.5"')


plt.plot(xarr, xarr, color='b', label='symmetric line')
plt.legend(loc='upper right')
plt.show() 

二、只要有原函数的导数, 用隐函数微分法可以求导任意反函数,

例子:

1、

y = tan(x) (-pi/2 < x< pi/2 )

注意看绿色的曲线:( )

求导:

(注:用到三角函数公式  )

x = symbols('x')
z1 = sin(x)/cos(x)
derivative_f = z1.diff(x)

继续推导:

..............   (太复杂了...)

简化: 由于 ->

import numpy as np 
from sympy import *
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.spines['left'].set_position('zero')
ax.spines['bottom'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.set_aspect( 1 ) 
angle = np.linspace( 0 , 2 * np.pi , 150 ) 
y = 60/180 * np.pi

angleArc = np.linspace( 0 , y , 150 ) 
radius = (tan(y))**2 + 1
xArc = radius * np.cos( angleArc ) /20
yArc = radius * np.sin( angleArc ) /20

ax.plot( xArc, yArc,color='r') 
plt.text(tan(y)/10, tan(y)/10, 'y', fontsize=12)
ax.plot( [0,1,1,0], [0,tan(y),0,0],color='b',label='x=tany, y='+format(y)) 
plt.text(1.1, tan(y)/2, 'x', fontsize=12)
plt.text(0.3, tan(y)/13, 'bottom line length = 1', fontsize=12)

plt.text(-0.34, 0, 'A', fontsize=12)
plt.text(1.2, 0, 'B', fontsize=12)
plt.text(1.1,tan(y)+0.1 , 'C', fontsize=12)

plt.text(0.3, tan(y)/13, 'bottom line length = 1', fontsize=12)
plt.text(0.3, tan(y)/13+0.1, 'tany = x/1 (BC : AC)', fontsize=12)
plt.text(0.3, tan(y)/13+0.2, 'cosy = 1/(1-x^2)^{1/2}', fontsize=12)
plt.legend(loc='upper right')
plt.show() 

由图可知:

2、

      

      

      

由于 x= sin(y)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5657757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存