导数应用(一):差分计算(导数)

  • 1.数学背景
  • 2.代码

1.数学背景

导数:dydx=y(xi)−y(xi−1)xi−xx−i\frac{dy}{dx} = \frac{y(x_i) - y(x_{i-1})}{x_i - x_{x-i}}dxdy​=xi​−xx−i​y(xi​)−y(xi−1​)​

差分:ΔYΔX=Yi−Yi−1Xi−Xi−1\frac{\Delta Y}{\Delta X} = \frac{Y_i- Y_{i-1}}{X_i - X_{i-1}}ΔXΔY​=Xi​−Xi−1​Yi​−Yi−1​​

然而由于数据特性,大多数情况ΔX\Delta XΔX 远远无法逼近 dxdxdx
由此衍生出各种差分形式,但主要思想万变不离其宗

2.代码

按照惯例,先放图:

  • 蓝色曲线为 y1=sin(x)y_1 = sin(x)y1​=sin(x)
  • 黄色曲线为 y2=(sin(x))′=cos(x)y_2 = (sin(x))' = cos(x)y2​=(sin(x))′=cos(x)
  • 红色曲线为 y3=(sin(x))′′=−sin(x)y_3 = (sin(x))'' = -sin(x)y3​=(sin(x))′′=−sin(x)

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np# 一阶中心差分
def diff_1st_mid(series,dx):arr = []for i in range(0,len(series),1):if i ==0:arr.append((series[1] - series[0])/dx)elif i== len(series)-1:arr.append((series[len(series)-1] - series[len(series)-2])/dx)else:arr.append((series[i+1] - series[i-1])/ (2 * dx) )return arr# 二阶中心差分
def diff_2nd_mid(series,dx):arr = []dx2 = dx * dxfor i in range(0,len(series),1):if i ==0:arr.append((series[2] -2*series[1]  + series[0])/dx2)elif i== len(series)-1:arr.append((series[len(series)-1] - 2*series[len(series)-2] +series[len(series)-3])/dx2)else:arr.append((series[i+1] - 2 *series[i] +  series[i-1])/ (dx2) )return arrX=np.linspace(-np.pi,np.pi,1000,endpoint=True)Y = np.sin(X)
Diff1 = np.cos(X)DD1 = diff_1st_mid(Y,np.pi * 2 /(len(X)))
DD2 = diff_2nd_mid(Y,np.pi * 2 /(len(X)))plt.plot(X,Y)plt.plot(X,DD1, color = 'yellow', linewidth=1, linestyle="--")
plt.plot(X,DD2, color = 'red', linewidth=1, linestyle="--")print(DD1)plt.show()

导数应用(一):差分计算(导数)相关推荐

  1. 通过Python Pandas分析数据上涨下跌趋势的方法:求离散数据的差分、导数

    在实际工作中,我们经常需要分析一组数据的历史走势/趋势情况,比如要从产品数据库中筛选出销量处于上升趋势的产品,或者从股票历史数据库中筛选出一直处于上涨的股票. 那么可以通过分析计算该组数据的差分来模拟 ...

  2. scipy模块计算导数方法(central_diff_weights)

    scipy中计算导数有两种方式: central_diff_weights derivative 其中第一种方式在scipy帮助中,没有写很清楚,这里重点讲一下. 就举一个例子: 计算下列函数在x=1 ...

  3. python计算导数_python计算导数并绘图的实例

    我就废话不多说了,直接上代码吧! import math import numpy as np import matplotlib.pyplot as plt from sympy import * ...

  4. matlab常见符号运算(计算导数,积分、符号求和等))

    符号运算的建立 sym 函数用来建立单个符号量,一般调用格式为: 符号变量 = sym(A) 参数 A 可以是一个数或数值矩阵,也可以是字符串 syms 命令用来建立多个符号量,一般调用格式为: sy ...

  5. 导数的四则运算法则_高考考纲与考向分析——导数的概念与计算

    考纲原文 1.导数概念及其几何意义 (1)了解导数概念的实际背景. (2)理解导数的几何意义. 2.导数的运算 (2)能利用下面给出的基本初等函数的导数公式和导数的四则运算法则求简单函数的导数,能求简 ...

  6. matlab常见符号运算( 因式分解、展开、合并、简化及通分等,计算导数,积分,符号求和、代数方程和微分方程求解)

    常见符号运算 因式分解.展开.合并.简化及通分等 因式分解factor(f) factor 也可用于正整数的分解 函数展开 expand(f) 多项式展开 三角函数展开 合并同类项 collect(f ...

  7. 数值优化(Numerical Optimization)学习系列-计算导数(Calculating Derivatives)

    概述 最优化问题中很多算法,包括非线性最优化.非线性等式等都需要计算导数.简单函数可以直接进行人工计算或者编码实现,对于复杂的情况,需要寻找一些方法进行计算或者近似.本节主要内容包括 1. 常见导数求 ...

  8. 桌面计算器 ,可计算导数

    本计算器采用LR分析,可支持CMATH.H库里的大部分运算,并且支持导数运算 #include <iostream> #include <vector> #include &l ...

  9. 差分求导数近似值的比较

    设f(x)f(x)f(x) 在点xxx 二阶可导,则: 若取点 x,x+Δxx, x + \Delta xx,x+Δx 的值的差分作为导数的近似值,则: f(x+Δx)=f(x)+f′(x)Δx+o( ...

最新文章

  1. JDBC MySQL Servlet Java入门编写时的一些问题(html背景图片设置、input=date与Java和数据库之间的通信、SQL的基础语句与变量的编写)
  2. movielens推荐系统_浅谈推荐系统+3个小时上手python实现(完整代码)
  3. 2015.7.17( NOI2015 day1 )
  4. 多台电脑共用一个耳机、音箱
  5. 用于MLOps的MLflow简介第1部分:Anaconda环境
  6. 动态SQL中变量赋值
  7. 服务器出生点配置文件,服务器设置出生点
  8. 洛谷P1856 [USACO5.5]矩形周长Picture
  9. php 图片保存到本地文件,php 远程图片保存到本地的函数类
  10. 七甲川染料CY7标记海藻酸钠|CY7-海藻酸钠|alginate-peg-Cyanine7
  11. 玉米稻风波被中途扼杀 国稻种芯-何登骥:生物育种风险机制
  12. 深圳计算机专业中专学校,深圳最好的中专学校有哪些 十大中专学校排名
  13. 中央电大 c语言程序设计a 试题,中央电大208年秋C语言程序设计A试题1.doc
  14. python+openCV 获取背景(三)
  15. Docker-Compose 容器编排技术
  16. 高速大容量nfcb卡nfc手机测试b卡协议正确性14443b 848kbps nfc平板
  17. 保卫城市消费券安全,从这些做起
  18. 系统CPU负载过高、CPU使用率不高的问题
  19. 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。
  20. Python程序员别秃了,护发防脱发小妙招,收藏吧

热门文章

  1. 流程图、思维导图、网络拓扑图、组织结构图——ProcessOn在线工具及增加文件数方法
  2. win7抓取计算机窗口存于位图文件,Win7系统电脑如何截图并保存?
  3. SLAM算法中的地图构建问题
  4. 20170406 bpi_a64_android的编译配置文件排版v1.2.txt
  5. C# SolidWorks 二次开发 API---调用Solidworks命令
  6. 汇编语言(第四版)——王爽 著
  7. vue 项目在加载完成之前,显示预置加载动画
  8. 左程云老师算法课笔记(五)
  9. 模型预测控制(MPC,Model Predictive Control)
  10. JVM默认垃圾回收器扫盲,那些说UseParallelGC是 PS + Serial Old 的别再打脸了