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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

scipy中計算導數有兩種方式:

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

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

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

  • N為奇數
  • N大于導數的階數;比如要計算1階導數,N>1;計算2階導數, N>2
  • 我們取N=5, 計算在x=1x=1x=1的附近的5個函數值,左右對稱
    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), 返回的是計算2階導數的各個值的權重,把這5個值和以上5個函數值相乘,并且除以間隔值0.1兩次,即為導數

    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)

    計算的值為:9.620841015472953 與理論值很接近了

    下面用另一種方法derivative 計算導數,這種方法比較直觀

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

    計算的值為:9.620846874724975

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。