最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+NumPy繪制常見曲線的方法詳解

 更新時間:2022年06月11日 08:41:59   作者:PursuitingPeak  
NumPy(Numerical Python)是Python的一種開源的數(shù)值計算擴展。本文將利用NumPy庫繪制利薩茹曲線、計算斐波那契數(shù)列、方波和鋸齒波和三角波,需要的可以參考一下

在NumPy中,所有的標準三角函數(shù)如sin、cos、tan等均有對應的通用函數(shù)。

一、利薩茹曲線

(Lissajous curve)利薩茹曲線是一種很有趣的使用三角函數(shù)的方式(示波器上顯示出利薩茹曲線)。利薩茹曲線由以下參數(shù)方程定義:

x = A sin(at + n/2)

y = B sin(bt)

利薩茹曲線的參數(shù)包括 A 、 B 、 a 和 b 。為簡單起見,我們令 A 和 B 均為1,設置的參數(shù)為 a=9 , b=8

import numpy as np
import matplotlib.pyplot as plt

A=B=1
a=9
b=8

t = np.linspace(-np.pi, np.pi, 201)  #使用linspace函數(shù)初始化變量t
x = np.sin(a * t + np.pi/2)  # sin 函數(shù)和NumPy常量 pi 計算變量 x 
y = np.sin(b * t)  # sin函數(shù)計算變量y
plt.plot(x, y)
plt.show()

運行結(jié)果:

二、計算斐波那契數(shù)列

斐波那契數(shù)列的遞推關(guān)系可以用矩陣來表示。斐波那契數(shù)列的計算等價于矩陣的連乘。可用兩種方法計算了斐波那契數(shù)列

1)黃金比例計算方法,使用 rint 函數(shù)對浮點數(shù)取整但不改變浮點數(shù)類型

1,1,2,3,5,8,13,21,34,55,89,……

#   斐波那契數(shù),用黃金分割公式或通常所說的比奈公式,加上取整函數(shù)
n = np.arange(1, 9)
sqrt5 = np.sqrt(5)
phi = (1 + sqrt5)/2 #利用根號5計算黃金比例,或者直接用phi=1+0.618 
print("比例:",phi)
print('\n')
fibonacci = np.rint((phi**n - (-1/phi)**n)/sqrt5)  #用rint()函數(shù)對浮點數(shù)取整但不改變浮點數(shù)類型
print("Fibonacci", fibonacci)

2)利用矩陣進行計算:用 matrix 函數(shù)創(chuàng)建矩陣

# 斐波那契數(shù),用矩陣來表示斐波那契數(shù)列的遞推關(guān)系
F = np.matrix([[1, 1], [1, 0]])
print ("8th Fibonacci:", (F ** 10)[0, 0])

運行結(jié)果:

比例: 1.618033988749895

Fibonacci [ 1.  1.  2.  3.  5.  8. 13. 21.]
8th Fibonacci: 89

三、方波

方波可以近似表示為多個正弦波的疊加。任意一個方波信號都可以用無窮傅里葉級數(shù)來表示。

需要累加很多項級數(shù),且級數(shù)越多結(jié)果越精確,這里取 k=99(可以分別設置為9,50,1000等進行測試觀察生成效果) 以保證足夠的精度。繪制方波的步驟如下。

1) 初始化 t 和 k 開始,并將函數(shù)值初始化為

m = np.linspace(-np.pi, np.pi, 201) #從 -pi 到 pi 上均勻分布的 201 個點
k = np.arange(1,99)   # k=99 以保證足夠的精度,如圖中的9 20 99顯示的波形
k = 2 * k - 1
f = np.zeros_like(m)

2)使用 sin()求正弦函數(shù),用sum()數(shù)計算各項級數(shù):

for i in range(len(m)):  #使用 sin 和 sum 函數(shù)進行計算
    f[i] = np.sum(np.sin(k * m[i])/k)
f = (4 / np.pi) * f

3)繪制波形

plt.plot(t, f)
plt.show()

四、鋸齒波和三角波

鋸齒波和三角波也是常見的波形。和方波類似,也可以將它們表示成無窮傅里葉級數(shù)。對鋸齒波取絕對值即可得到三角波。鋸齒波的無窮級數(shù)表達式如下:

import numpy as np
import matplotlib.pyplot as plt

t = np.linspace(-np.pi, np.pi, 201)
k = np.arange(1, 99)
f = np.zeros_like(t)
for i in range(len(t)):
    f[i] = np.sum(np.sin(2 * np.pi * k * t[i])/k)

f = (-2 / np.pi) * f
plt.plot(t, f, lw=1.0)
plt.plot(t, np.abs(f), lw=2.0)
plt.show()

運行結(jié)果:

以上就是Python+NumPy繪制常見曲線的方法詳解的詳細內(nèi)容,更多關(guān)于Python NumPy繪制曲線的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談python字典多鍵值及重復鍵值的使用

    淺談python字典多鍵值及重復鍵值的使用

    下面小編就為大家?guī)硪黄獪\談python字典多鍵值及重復鍵值的使用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 使用Pytorch來擬合函數(shù)方式

    使用Pytorch來擬合函數(shù)方式

    今天小編就為大家分享一篇使用Pytorch來擬合函數(shù)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python如何實現(xiàn)常用的五種排序算法詳解

    python如何實現(xiàn)常用的五種排序算法詳解

    排序有很多種實現(xiàn)方法,比如冒泡排序、選擇排序、歸并排序、希爾排序、快速排序、插入排序、堆排序、基數(shù)排序等,這篇文章主要給大家介紹了關(guān)于python如何實現(xiàn)常用的五種排序算法,需要的朋友可以參考下
    2021-08-08
  • python pickle存儲、讀取大數(shù)據(jù)量列表、字典數(shù)據(jù)的方法

    python pickle存儲、讀取大數(shù)據(jù)量列表、字典數(shù)據(jù)的方法

    pickle模塊實現(xiàn)了用于序列化和反序列化python對象結(jié)構(gòu)的二進制協(xié)議。這篇文章主要介紹了python pickle存儲、讀取大數(shù)據(jù)量列表、字典的數(shù)據(jù),需要的朋友可以參考下
    2019-07-07
  • python實現(xiàn)兩個經(jīng)緯度點之間的距離和方位角的方法

    python實現(xiàn)兩個經(jīng)緯度點之間的距離和方位角的方法

    今天小編就為大家分享一篇python實現(xiàn)兩個經(jīng)緯度點之間的距離和方位角的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python怎么去除字符串最后的換行符‘\n’

    python怎么去除字符串最后的換行符‘\n’

    這篇文章主要介紹了python去除字符串最后的換行符'\n',本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • 跟老齊學Python之總結(jié)參數(shù)的傳遞

    跟老齊學Python之總結(jié)參數(shù)的傳遞

    這篇文章主要介紹了Python參數(shù)的傳遞的總結(jié),非常的實用,有需要的朋友可以參考下
    2014-10-10
  • Python subprocess模塊功能與常見用法實例詳解

    Python subprocess模塊功能與常見用法實例詳解

    這篇文章主要介紹了Python subprocess模塊功能與常見用法,結(jié)合實例形式詳細分析了subprocess模塊功能、常用函數(shù)相關(guān)使用技巧,需要的朋友可以參考下
    2018-06-06
  • Python解析MySQL Binlog日志分析情況

    Python解析MySQL Binlog日志分析情況

    文章介紹了如何使用Python解析MySQL的binlog日志,并通過分析binlog來了解數(shù)據(jù)庫的變動情況,如大事務、頻繁更新的表等,文章詳細描述了binlog的結(jié)構(gòu)、事件類型以及如何通過解析這些事件來獲取所需的信息,最后,文章提供了一個示例代碼
    2025-01-01
  • python?pandas庫讀取excel/csv中指定行或列數(shù)據(jù)

    python?pandas庫讀取excel/csv中指定行或列數(shù)據(jù)

    通過閱讀表格,可以發(fā)現(xiàn)Pandas中提供了非常豐富的數(shù)據(jù)讀寫方法,下面這篇文章主要給大家介紹了關(guān)于python利用pandas庫讀取excel/csv中指定行或列數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-02-02

最新評論

安平县| 获嘉县| 五家渠市| 永清县| 孟津县| 金乡县| 沙坪坝区| 漳浦县| 凤阳县| 新竹县| 伊吾县| 通山县| 高安市| 龙口市| 当雄县| 凤山县| 大竹县| 寿光市| 喜德县| 抚宁县| 石门县| 乌什县| 万年县| 益阳市| 铜川市| 蒲城县| 鱼台县| 新丰县| 西和县| 山东省| 吉水县| 闽清县| 常山县| 库伦旗| 台东县| 宁南县| 元朗区| 河池市| 星座| 丘北县| 翁源县|