日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2025/4/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scipy模块计算导数方法(central_diff_weights) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

scipy中計(jì)算導(dǎo)數(shù)有兩種方式:

  • central_diff_weights
  • derivative
  • 其中第一種方式在scipy幫助中,沒有寫很清楚,這里重點(diǎn)講一下。

    就舉一個(gè)例子: 計(jì)算下列函數(shù)在x=1x=1x=1處的2階導(dǎo)數(shù)
    f(x)=3x+x3f(x) = 3^{x} + x^{3}f(x)=3x+x3
    利用求導(dǎo)公式,我們很容易得到這個(gè)值:9.620846882437746

    要利用第一種方法,需要有若干個(gè)(N)在求導(dǎo)點(diǎn)附近的函數(shù)值,并且需要均勻。N還需要滿足兩個(gè)條件

  • N為奇數(shù)
  • N大于導(dǎo)數(shù)的階數(shù);比如要計(jì)算1階導(dǎo)數(shù),N>1;計(jì)算2階導(dǎo)數(shù), N>2
  • 我們?nèi)=5, 計(jì)算在x=1x=1x=1的附近的5個(gè)函數(shù)值,左右對(duì)稱
    f(0.8),f(0.9),f(1),f(1.1),f(1.2)f(0.8) ,f(0.9), f(1), f(1.1), f(1.2)f(0.8),f(0.9),f(1),f(1.1),f(1.2)

    central_diff_weights(5,2), 返回的是計(jì)算2階導(dǎo)數(shù)的各個(gè)值的權(quán)重,把這5個(gè)值和以上5個(gè)函數(shù)值相乘,并且除以間隔值0.1兩次,即為導(dǎo)數(shù)

    from scipy.misc import central_diff_weights from scipy.misc import derivative import numpy as npdef f(x):return 3**x + x**3x = np.r_[0.8:1.2:5j] y = np.vectorize(f)(x)w = central_diff_weights(5, 2) print(np.sum(y*w) / 0.1 / 0.1)

    計(jì)算的值為:9.620841015472953 與理論值很接近了

    下面用另一種方法derivative 計(jì)算導(dǎo)數(shù),這種方法比較直觀

    derivative(f, x0=1, dx=0.0001, n=2)

    計(jì)算的值為:9.620846874724975

    總結(jié)

    以上是生活随笔為你收集整理的scipy模块计算导数方法(central_diff_weights)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。