1. 程式人生 > >【Python】如何生成柯西分佈隨機數

【Python】如何生成柯西分佈隨機數

Python中生成標準柯西分佈的函式是:numpy.random.standard_cauchy(size),

我就在想,能否生成一個非標準的柯西隨機數呢?那麼面臨幾個問題:

(1)標準柯西隨機數和非標準可惜隨機數之間有沒有之間轉化關係?(沒有)

(2)柯西隨機數是怎麼生成的?

(3)柯西隨機數與概率密度有關,還是與概率分佈有關?

帶著這幾個問題,我首先查了什麼是柯西分佈,包括密度函式、概率分佈函式的表示式(來自:百度百科)。

柯西分佈也叫作柯西一洛倫茲分佈,它是以奧古斯丁-路易-柯西與亨德里克-洛倫茲名字命名的連續概率分佈,如圖所示。其概率密度函式式中:為定義分佈峰值位置的位置引數為最大值一半處的一半寬度的
尺度引數
作為概率分佈,通常稱為柯西分佈,物理學家也將之稱為洛倫茲分佈或者Breit-Wigner分佈。在物理學中的重要性很大以部分歸因於它是描述受迫共振的微分方程的解。在光譜學中,它描述了被共振或者其他機制加寬的譜線形狀。記隨機變數 X服從柯西分佈為 . 的特例稱為標準柯西分佈,其概率密度函式為:
其對應的累積分佈函式為:

然後,在生成柯西隨機數時,網上有人是這樣做的(連結):

計算得到Cauchy分佈累計分佈函式(CDF)的反函式;

使用rand()函式生成(0,1)區間上均勻分佈的初始隨機數x;

將初始隨機數代入CDF的反函式即可得到我們需要的標準Cauchy隨機數

C(1)_x=tan((x-1/2)*pi);

顯然,上面的CDF的反函式起關鍵作用。在CDF的反函式中,概率變成自變數(對應0和1之間的隨機數),因變數就是所求隨機數(對應負無窮到正無窮的隨機數)。於是,我們可求得非標準柯西隨機數生成公式為:

C(gamma, x0)_x = gamma*tan((x-1/2)*pi) + x0 ; 

即 C(gamma, x0)_x = gamma*C(1)_x + x0 ;

那麼,在python中,要得到gamma為2的非標準柯西隨機數,只需要在原來基礎上乘以2,即

C(1)_x = numpy.random.standar.cauchy(1)

C(2)_x = 2*numpy.random.standar.cauchy(1)

相關推薦

Python如何生成西分佈隨機數

Python中生成標準柯西分佈的函式是:numpy.random.standard_cauchy(size),我就在想,能否生成一個非標準的柯西隨機數呢?那麼面臨幾個問題:(1)標準柯西隨機數和非標準可惜隨機數之間有沒有之間轉化關係?(沒有)(2)柯西隨機數是怎麼生成的?(3

Python生成隨機數

1、生成指定範圍重複隨機數 #生成1000個10000以內不重複的隨機數 [random.randint(0,10000) for i in range(1000)] ##或者是 [random.ran

MT16利用西不等式求三角的最大值

技術分享 com style img 不等式 bsp nbsp png 均值 評:此題也可以設$1+cos\theta=t$,平方後變成$t$的單變量利用均值去做. 柯西平衡系數法其實就是待定系數法,利用等號取到的條件。MT【16】利用柯西不等式求三角的最大值

python生成笛卡爾積(交叉表)DataFrame和numpy

有檔案A:,B:,希望通過A,B生成C: 就是笛卡爾積操作。 一,當資料在numpy陣列中,資料為: A=['a','b','c','d'] B=['1','2','3','4'] 其實方法一的思想很簡單粗暴:A,B元素儲存在list中,將A中每個元素複

Python生成動態路由軌跡圖

準備檔案: linux系統安裝:apt-get  install  tcpdump  graphviz   ImageMagick安裝:pip  install  scapy 過程:(要正確配置etc/resolv.config裡面的DNS伺服器) 通過scapy的trac

PythonPython生成一個不重複隨機list

在一個範圍內,生成一個固定元素個數的,不重複的隨機list. 錯誤方法 使用for迴圈逐一對生成每個值進行判斷,在有重複值的時候,不會被被新增.在需要生成多個隨機值的時候,容易出現輸出的結果比較少的情況.比如下面需要生成20個隨機值,可是一般輸出的都不到20. import ra

Pythonuuid生成唯一ID

uuid是128位的全域性唯一識別符號(univeral unique identifier),通常用一個32位的字串的形式來表現。有時也稱guid(global unique identifier)。python中自帶了uuid模組來進行uuid的生成和管理工作。(pyth

PythonWindows下用Jieba分詞和WordCloud庫生成中文詞雲

一、開啟Anaconda Prompt,用activate命令啟用環境 二、從清華映象下載所需庫: jieba分詞庫 wordcloud繪製詞雲庫 numpy常用於處理陣列 PIL為影象處理標準庫 pip install jieba -i https://pypi

Python3.6版本py檔案打包生成exe

原文提到的要點: 1. Python版本32位 (檔名為 python-3.6.1.exe) 2. 安裝所有用到的模組(原文博主用的是openpyxl,我用到的有urllib中的request\config\data) 3. 下載替換pyinstaller(下載pyins

Python不使用迭代生成器生成斐波那契數列,並大幅降低時間複雜度

斐波那契數列指的是這樣一個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........ 這個數列從第3項開始,每

數字訊號產生之西分佈隨機數

uniform.h #pragma once class uniform { private:  double a, b, generate_num;  int * seed;  int s;  int M, N, i, j; public:  uniform()  {

Python自動生成命令列工具

Python 中用於生成命令列介面(Command Line Interfaces, CLIs)的工具已經有一些了,例如已經成為 Python 標準庫的 argparse 和第三方的 click ,這些都是很不錯的工具。但是這些工具為 Python 程式生成 C

Python正則表達式1(未完)

pes mmu get regular rop 則表達式 line out github 1、正則表達式唯一的用途就是在文本中匹配和尋找模式,模式可以簡單,也可以復雜。 2、Regexr 這個網站很個性的就是,有一個community標簽,打開後可以看到評分由高到低

LeetCodePythonBinary Tree Inorder Traversal

nod 不知道 otto div ack return integer neu else Given a binary tree, return the inorder traversal of its nodes‘ values. For example: Gi

Python決策樹的python實現

uia bmp say 不知道 times otto outlook lru bgm 【Python】決策樹的python實現 2016-12-08 數據分析師Nieson 1. 決策樹是什麽? 簡單地理解,就是根據一些 feature 進行分類,每個節點提一個問

Python基礎知識

數據 文件 專用 一切都 元組 內存 引用傳遞 asc ilo 1. python腳本語言的第一行,目的就是指出,你想要你的這個文件中的代碼用什麽可執行程序去運行它 #!/usr/bin/python 是告訴操作系統執行這個腳本的時候,調用/usr/bin下

Pythonpython2.7 安裝配置OpenCV2

pen 2.4.1 安裝 so文件 strong make lib con ack 環境:Ubuntu16.04 anaconda Python2.7 opencv2.4.13 安裝opencv後 import cv2 遇到錯誤信息: No module named cv2

Python數組排序

log false blog sort函數 () ron 返回 imp 總結 1.numpy庫:argsort()   argsort函數返回的是數組值從小到大的索引值(升序排列) 一維: In [1]: import numpy as np In [2]: x

Pythonselenium調用IE11瀏覽器,報錯“找不到元素”NoSuchWindowException: Message:Unable to find element on closed window

conn ont csdn creates logs 註冊 target get 意思 當編寫自動化腳本,定位瀏覽器元素時,報如下錯誤: 代碼: >>> # coding=utf-8 >>> from selenium import w

PythonSelenium元素定位錯誤之解決辦法

tor log -m alt src 多個 common nbu invalid 當使用class定位元素時發現報錯: 錯誤信息:selenium.common.exceptions.InvalidSelectorException: Message: Compound