欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

在NumPy中,所有的標(biāo)準(zhǔn)三角函數(shù)如sin、cos、tan等均有對應(yīng)的通用函數(shù)。

一、利薩茹曲線

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

x = A sin(at + n/2)

y = B sin(bt)

利薩茹曲線的參數(shù)包括 A 、 B 、 a 和 b 。為簡單起見,我們令 A 和 B 均為1,設(shè)置的參數(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ù)列的計算等價于矩陣的連乘??捎脙煞N方法計算了斐波那契數(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)利用矩陣進(jìn)行計算:用 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(可以分別設(shè)置為9,50,1000等進(jìn)行測試觀察生成效果) 以保證足夠的精度。繪制方波的步驟如下。

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ù)進(jìn)行計算
    f[i] = np.sum(np.sin(k * m[i])/k)
f = (4 / np.pi) * f

3)繪制波形

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

四、鋸齒波和三角波

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

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繪制常見曲線的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python NumPy繪制曲線的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解決Python plt.savefig 保存圖片時一片空白的問題

    解決Python plt.savefig 保存圖片時一片空白的問題

    今天小編就為大家分享一篇解決Python plt.savefig 保存圖片時一片空白的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • pyqt5圓形label顯示打開的攝像頭功能

    pyqt5圓形label顯示打開的攝像頭功能

    本文主要給大家講解如何使用pyqt5打開攝像頭并在label上顯示,以及優(yōu)化成圓形label框。通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • python3在各種服務(wù)器環(huán)境中安裝配置過程

    python3在各種服務(wù)器環(huán)境中安裝配置過程

    這篇文章主要介紹了python3在各種服務(wù)器環(huán)境中安裝配置過程,源碼包編譯安裝步驟詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • Django基礎(chǔ)知識與基本應(yīng)用入門教程

    Django基礎(chǔ)知識與基本應(yīng)用入門教程

    這篇文章主要介紹了Django基礎(chǔ)知識與基本應(yīng)用,結(jié)合實例形式分析了Django框架基本的項目創(chuàng)建、啟動、查看版本等操作,并結(jié)合一個簡單的blog應(yīng)用示例分析了Django的基本使用方法,需要的朋友可以參考下
    2018-07-07
  • Python?FastAPI?Sanic?Tornado?與Golang?Gin性能實戰(zhàn)對比

    Python?FastAPI?Sanic?Tornado?與Golang?Gin性能實戰(zhàn)對比

    本文將深入比較Python的FastAPI、Sanic、Tornado以及Golang的Gin框架的各種特性、性能表現(xiàn)以及適用場景,通過詳實的性能測試和實際示例代碼,將探討它們在構(gòu)建現(xiàn)代高性能應(yīng)用中的優(yōu)劣勢,以便開發(fā)者根據(jù)需求做出明智的選擇
    2024-01-01
  • python使用Psutil模塊實現(xiàn)獲取計算機相關(guān)信息

    python使用Psutil模塊實現(xiàn)獲取計算機相關(guān)信息

    psutil 是一個跨平臺的庫,用于獲取進(jìn)程和系統(tǒng)運行狀態(tài)的信息,這篇文章主要為大家詳細(xì)介紹了python如何調(diào)用psutil模塊實現(xiàn)獲取計算機相關(guān)信息,有需要的小伙伴可以了解下
    2023-11-11
  • python使用xmlrpclib模塊實現(xiàn)對百度google的ping功能

    python使用xmlrpclib模塊實現(xiàn)對百度google的ping功能

    這篇文章主要介紹了python使用xmlrpclib模塊實現(xiàn)對百度google的ping功能,實例分析了xmlrpclib模塊的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • python爬蟲beautiful?soup的使用方式

    python爬蟲beautiful?soup的使用方式

    這篇文章主要介紹了python爬蟲beautiful?soup的使用方式,Beautiful?Soup依據(jù)給定的解釋器來解析html文檔,其依據(jù)html中標(biāo)簽把html文檔在內(nèi)存中轉(zhuǎn)化為類似于二叉樹的數(shù)據(jù)結(jié)構(gòu),并通過實現(xiàn)的查詢方法來查詢二叉樹以得到我們想要的爬蟲數(shù)據(jù)
    2022-08-08
  • python實現(xiàn)最短路徑的實例方法

    python實現(xiàn)最短路徑的實例方法

    在本篇內(nèi)容里小編給大家整理的是關(guān)于python實現(xiàn)最短路徑的實例方法,有需要的朋友們可以參考下。
    2020-07-07
  • python讀文件保存到字典,修改字典并寫入新文件的實例

    python讀文件保存到字典,修改字典并寫入新文件的實例

    下面小編就為大家分享一篇python讀文件保存到字典,修改字典并寫入新文件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評論