python实现之导数

article/2025/8/22 1:43:41

导数(Derivative),也叫导函数值。又名微商,是微积分中的重要基础概念。当函数y=f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x0)或df(x0)/dx。

不是所有的函数都有导数,一个函数也不一定在所有的点上都有导数。若某函数在某一点导数存在,则称其在这一点可导,否则称为不可导。然而,可导的函数一定连续;不连续的函数一定不可导。

切线指的是一条刚好触碰到曲线上某一点的直线。更准确地说,当切线经过曲线上的某点(即切点)时,切线的方向与曲线上该点的方向是相同的。平面几何中,将和圆只有一个公共交点的直线叫做圆的切线。

法线(normal line),是指始终垂直于某平面的直线。在几何学中,法线指平面上垂直于曲线在某点的切线的一条线。法线也应用于光学的平面镜反射上。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#                     _ooOoo_
#                   o8888888o
#                    88" . "88
#                 ( | -  _  - | )
#                     O\ = /O
#                 ____/`---'\____
#                  .' \\| |// `.
#                 / \\|||:|||// \
#               / _|||||-:- |||||- \
#                | | \\\ - /// | |
#              | \_| ''\---/'' | _/ |
#               \ .-\__ `-` ___/-. /
#            ___`. .' /--.--\ `. . __
#         ."" '< `.___\_<|>_/___.' >'"".
#       | | : `- \`.;`\  _ /`;.`/ - ` : | |
#          \ \ `-. \_ __\ /__ _/ .-` / /
#      ==`-.____`-.___\_____/___.-`____.-'==
#                     `=---='
'''
@Project :pythonalgorithms 
@File :derivatives.py
@Author :不胜人生一场醉@Date :2021/8/1 0:17 
'''
import matplotlib.pyplot as plt
import numpy as np
import math
import sympy
import mpl_toolkits.axisartist as axisartist  # 导入坐标轴加工模块if __name__ == '__main__':quadraticderivativeplot()exponentialderivativeplot()arccscderivativeplot()
# 导数(Derivative),也叫导函数值。又名微商,是微积分中的重要基础概念。
# 当函数y=f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x0)或df(x0)/dx。
# 不是所有的函数都有导数,一个函数也不一定在所有的点上都有导数。
# 若某函数在某一点导数存在,则称其在这一点可导,否则称为不可导。然而,可导的函数一定连续;不连续的函数一定不可导。
def quadraticderivativeplot():plt.figure(figsize=(5, 12))ax = plt.gca()  # 通过gca:get current axis得到当前轴plt.rcParams['font.sans-serif'] = ['SimHei']  # 绘图中文plt.rcParams['axes.unicode_minus'] = False  # 绘图负号x = np.linspace(-2, 2, 200)y = x ** 2label = '函数=x**2的曲线'plt.plot(x, y, label=label)yd = 2 * xlabel = '导数线=2*x的曲线'plt.plot(x, yd, label=label)a = 1ad = a ** 2plt.plot(a, ad, 'og', label='x=1的某个点')# y=ax+b,已知a=2,x=1,y=1,求bb = ad - 2 * a# 准备画切线的数据al = np.linspace(-2, 2, 200)yl = 2 * al + blabel = 'x=1的切线'plt.plot(al, yl, label=label)# 准备画法线的数据,切线斜率=法线斜率的负数b = ad + 2 * aal = np.linspace(-2, 2, 200)yl = -2 * al + blabel = 'x=1的法线'plt.plot(al, yl, label=label)# 求导函数x = sympy.Symbol('x')f1 = x ** 2# 参数是函数与变量f1_ = sympy.diff(f1, x)print(f1_)# 设置图片的右边框和上边框为不显示ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')# 挪动x,y轴的位置,也就是图片下边框和左边框的位置# data表示通过值来设置x轴的位置,将x轴绑定在y=0的位置ax.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='upper right')plt.show()

# 指数函数的导数
# 指数函数 y=a**x
# 指数函数的导数为 y=a**x*ln(a)
def exponentialderivativeplot():plt.figure(figsize=(5, 12))ax = plt.gca()  # 通过gca:get current axis得到当前轴plt.rcParams['font.sans-serif'] = ['SimHei']  # 绘图中文plt.rcParams['axes.unicode_minus'] = False  # 绘图负号a = 2x = np.linspace(-2, 2, 200)y = np.power(a, x)yd = np.power(a, x) * np.log(a)label = '函数=a**x的曲线'plt.plot(x, y, label=label)label = '导数线=a**x的曲线'plt.plot(x, yd, label=label)xpoint = 1ypoint = np.power(a, xpoint)plt.plot(xpoint, ypoint, 'og', label='x=1的某个点')# 斜率slope=导数,求截距interceptslope = math.pow(a, xpoint) * math.log(a, np.e)# y=ax+b,已知a,x,y,求bintercept = ypoint - slope * xpoint# 准备画切线的数据yl = x * slope + intercept# print(slope,intercept,yl)label = 'x=1的切线'plt.plot(x, yl, label=label)# 准备画法线的数据,切线斜率=法线斜率的负数# y=ax+b,已知x,y,-a,求bintercept = ypoint + slope * xpointyl = -x * slope + interceptlabel = 'x=1的法线'plt.plot(x, yl, label=label)# # 求导函数# x = sympy.Symbol('x')# f1 = x**2# # 参数是函数与变量# f1_ = sympy.diff(f1, x)# print(f1_)# 设置图片的右边框和上边框为不显示ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')# 挪动x,y轴的位置,也就是图片下边框和左边框的位置# data表示通过值来设置x轴的位置,将x轴绑定在y=0的位置ax.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='upper right')plt.show()

# 常用导数公式表如下:#
# c'=0(c为常数)
# (x^a)'=ax^(a-1),a为常数且a≠0
# (a^x)'=a^xlna
# (e^x)'=e^x#
# (logax)'=1/(xlna),a>0且 a≠1
# (lnx)'=1/x
# (sinx)'=cosx
# (cosx)'=-sinx
# (tanx)'=(secx)^2
# (secx)'=secxtanx
# (cotx)'=-(cscx)^2
# (cscx)'=-csxcotx
# (arcsinx)'=1/√(1-x^2)
# (arccosx)'=-1/√(1-x^2)
# (arctanx)'=1/(1+x^2)
# (arccotx)'=-1/(1+x^2)
# arcsinx函数的导数
# arcsinx函数
# arcsinx函数的导数为 1/√(1-x^2)
def arccscderivativeplot():plt.figure(figsize=(10, 5))ax = plt.gca()  # 通过gca:get current axis得到当前轴plt.rcParams['font.sans-serif'] = ['SimHei']  # 绘图中文plt.rcParams['axes.unicode_minus'] = False  # 绘图负号x = np.append(np.linspace(0.01, np.pi / 2 - 0.01, 120),np.linspace(np.pi / 2 + 0.01, np.pi - 0.01, 120))y = 1 / np.cos(x)# 正割函数 sec(x)=1/cos(x)# 反正割函数 颠倒x,y值即可label = '函数为np.arcsecx(x)的曲线'plt.plot(y, x, label=label)x = np.linspace(-0.99, 0.99, 120)yd = 1 / np.sqrt(1 - np.power(x, 2))label = '导数线为np.arcsecx(x)的曲线'plt.plot(x, yd, label=label)# 设置图片的右边框和上边框为不显示ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')# 挪动x,y轴的位置,也就是图片下边框和左边框的位置# data表示通过值来设置x轴的位置,将x轴绑定在y=0的位置ax.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("arcsin函数、导数曲线")plt.legend(loc='upper right')plt.show()


http://chatgpt.dhexx.cn/article/JH9buRDy.shtml

相关文章

python实现之一阶二阶导数

函数的和、差、积、商的求导法则 uu(x),vv(x) (uv)uv (u-v)u-v (Cu)Cu (uv)uvuv (u/v)(uv-uv)/v^2 复合函数求导法则 yf(u)&#xff0c;uφ(v) 复合函数yf[φ(v)]的导数为 dy/dxdy/du*du/dxf(u)*φ(v) (u-vz)u-vz&#xff0c;且(Cu)Cu exam1: y 2*x*^3 -5*x^23*x-7 y6*x^2-10x3…

《高等数学》 总结 导数、微分、不定积分

必须掌握各个概念的定义。从定义中,深入的理解概念,以及发掘概念之间的相互联系。 导数&微分 微积分有两种定义: 1、古典微积分 这是一种直观、便于理解的定义。首先定义微分是微小变化量。比如函数y=f(x)中dx是x的微小变化量,那么dy就是dx对应的y的微小变化。导数…

电脑连不上WiFi,右下角出现红叉怎么解决

我的电脑经常出现这个问题&#xff0c;后来解决得多了就知道方法了&#xff0c;是我的电脑无线网卡驱动的问题&#xff0c;解决办法&#xff1a; 1.电脑桌面单击此电脑&#xff0c;右键选择属性 2.选择网络适配器&#xff0c;一般出现问题就是因为网络适配器列表里面的一些东…

windows10 右下角网络连接栏显示一个电脑加上一个红叉,已解决

如下图所示&#xff1a; 解决办法&#xff1a; 找到命令行&#xff08;黑窗口&#xff09;管理员身份打开&#xff0c;一定要管理员身份&#xff0c;win10权限比较高输入 netsh winsock reset重启电脑即可

日常和电脑的斗争之如何解决电脑wifi出现红叉

当wifi上面显示红叉并且出现&#xff0c;无连接不可用字样&#xff0c;首先确保无锡那网络处于可连接状态&#xff0c;FnF2,然后请做以下操作&#xff1a; 1&#xff1a;点击开始----控制面板-----网络和Internet----网络和共享中心------更改适配器设置 2&#xff1a;检查无线…

电脑右下角网络图标有个红叉但是可以上网

主要原因分析&#xff1a; 原因1&#xff1a;电脑出现缓存&#xff0c;打开网络配置&#xff0c;右键刷新几下&#xff0c;有时就好了。 原因2:系统服务未启动&#xff0c;或系统服务配置错误。 网络图标打红叉却能上网解决方法/步骤&#xff1a; 第1步&#xff1a;打开开始菜单…

WIN10 - WLAN网络适配器红叉-重新启动后依然红叉

你的电脑右下端显示&#xff1a; 单机右键 打开网络和Internet设置 点击更改适配器选项&#xff1a; 重启仍然无效。 解决&#xff1a; 尝试一&#xff1a;开始 ----> 命令提示符 &#xff0c;注意右键以管理员身份运行。 输入 netsh winsock reset 回车&#xff0c;重启…

Win7系统网络连接图标显示红叉但可以正常上网怎么办

近日小编在使用win7系统的时候&#xff0c;发现这样一个情况&#xff0c;就是电脑右下角的网络连接图标显示红叉&#xff0c;可是明明已经连接上网络了&#xff0c;而且可以正常上网&#xff0c;这是怎么回事呢&#xff1f;接下来给大家讲解一下Win7系统网络连接图标显示红叉但…

电脑无线上有个红叉,解决方法

今天打开电脑无线上就有个红叉&#xff0c;开始以为是无线没开&#xff0c;就按了fnf3(电脑上无线开关)&#xff0c;还是没反应连不上网&#xff0c;插上有线也是一样连不上 用电脑管家检测了下&#xff0c;可能是驱动问题&#xff0c;打开设备管理器&#xff0c;驱动也显示正常…

win7计算机网络连接,笔记本win7无线网络红叉电脑网络连接不可用的解决方法

笔记本win7无线网络红叉电脑网络连接不可用的解决方法分享给大家&#xff0c;网络连接是每一天电脑必备的&#xff0c;就像一个人的灵魂&#xff0c;没有了网络&#xff0c;电脑等于一台废掉的机器&#xff0c;因此无线网络连接故障是大家最关心的问题&#xff0c;也是遇到最多…

笔记本电脑右下角网络图标显示红叉

1.找到桌面上的计算机图标&#xff0c;选择并右击它&#xff0c;然后在弹出的各项中选择并点击“管理”。 2.之后弹出计算机管理窗口&#xff0c;在窗口的左边栏依照计算机管理&#xff08;本地&#xff09;、系统工具、性能往下找&#xff0c;在性能下面会看到有“设备管理器”…

计算机网络连接图标 红叉,win7系统网络连接成功但图标显示红叉的解决方法

很多小伙伴都遇到过win7系统网络连接成功但图标显示红叉的困惑吧&#xff0c;一些朋友看过网上零散的win7系统网络连接成功但图标显示红叉的处理方法&#xff0c;并没有完完全全明白win7系统网络连接成功但图标显示红叉是如何解决的&#xff0c;今天小编准备了简单的解决办法&a…

win7计算机建立无线网络连接不上,win7无线网络显示❌,win7连不上无线网显示红叉...

在笔记本中通常都内置有无线网卡&#xff0c;可以让用户们连接无线网络来使用&#xff0c;但是最近有不少笔记本win7系统用户到本站反馈说无线网络显示已连接&#xff0c;却不能上网&#xff0c;而且无线网络显示有感叹号&#xff0c;该怎么办呢&#xff0c;本教程就给大家讲解…

计算机网络有个红叉怎么办,笔记本电脑右下角网络出现红叉的解决办法

有时候&#xff0c;笔记本右下角的网络出现了红叉&#xff0c;怎么搜索也搜索不到无线&#xff0c;今日小编教你如何解决这个问题。 方法/步骤 1、网络出现红叉的问题&#xff0c;其实不是经常见到的。导致网络不能链接的&#xff0c;有以下几种原因&#xff1a; 一、是最常见的…

计算机网络上有个红叉没无线,无线网络连接显示红叉不能上网怎么办?

问&#xff1a;我的笔记本电脑上的无线网络连接显示红叉&#xff0c;而且不能够上网&#xff0c;怎么做才能解决这个问题&#xff1f; 答&#xff1a;笔记本电脑的无线网络连接显示红叉的原因比较多&#xff0c;可以按照下面的方法进行操作&#xff0c;来尝试解决这个问题。 1.…

计算机网络上有个红叉没无线,如果计算机的无线网络上出现红叉指示连接不正确,该怎么办| WIFI显示红叉...

计算机与台式计算机的区别在于计算机是的. 由于此功能&#xff0c;许多用户在使用笔记本电脑时将直接连接到WIFI. 但是&#xff0c;一些用户在不知道哪种情况时会发现无线网络连接不可用&#xff0c;并且还会出现红叉. 在这种情况下我该怎么办&#xff1f;本文是检查白云一键式…

笔记本此计算机到网络出现一个叉,笔记本电脑无线网络不可用并显示红叉的解决方...

众所周知&#xff0c;网络连接是每一天电脑必备的&#xff0c;就像一个人的灵魂&#xff0c;没有了网络&#xff0c;电脑等于一台废掉的机器&#xff0c;因此无线网络连接故障是大家最关心的问题&#xff0c;也是遇到最多的问题之一。今天&#xff0c;U大侠小编就针对一些win7系…

计算机网络上有个红叉没无线,电脑无线网络连接不上显示红叉

我们知道电脑没有网络&#xff0c;就像人被完全封闭在一个地方&#xff0c;只能解决单机问题&#xff0c;很多小伙伴的电脑无线网络有个红叉无法上网的现象&#xff0c;不知道如何解决?下面就让小编帮你分析下为什么电脑连不上wifi有红叉吧。 下面是解决电脑无线网络连接不上显…

网络连接处出现红叉的解决方法

网络连接处出现了红&#xff0c;将会直接导致电脑无法上网。一般是网卡驱动出现了问题&#xff0c;可以尝试一下方法去解决。&#xff08;win10系统&#xff09;。 第一步&#xff1a;右键“我的电脑”--“管理”--”设备管理器"(在左栏&#xff09;--“网络适配器”。查…

百度云心里的声音加长版

免费分享心里的声音加长版 链接&#xff1a;https://pan.baidu.com/s/1wtECgQA7zjfxhczHCG02fA 密码&#xff1a;tl7i 如果觉得我的文章对您有用&#xff0c;请随意打赏。弄视频资源不容易&#xff0c;希望大家多多支持&#xff01; 谢谢大家