我在Matlab中調用hypergeom(a,b,z)使用廣義超幾何函數。用Matlab中的矢量評估超幾何函數
該函數產生用於α= 1和a = 2,B = 2和z = 5:
>>hypergeom(1,2,5)
29.4826318205153
>>hypergeom(2,2,5)
148.413159102577
現在,我想在一個值的向量來評估超幾何。所以,如果我進入hypergeom(1:2,2,5),我期望的輸出:
[29.4826318205153, 148.413159102577]
然而,當我在Matlab中輸入驗證我得到:
>>hypergeom(1:2,2,5)
-0.25
因此單個值返回,爲a的輸入值的向量。如何在Matlab中正確調用hypergeom,以便獲得與輸入向量長度相同的輸出向量長度?
編輯: 在這個特定的計算,我估計所謂的超幾何函數(解決庫默爾的微分方程,請參閱:https://en.wikipedia.org/wiki/Confluent_hypergeometric_function)。這是1F1功能。這意味着長度(N)= 1且長度(D)= 1。
標準內置函數hypergeom是廣義超幾何函數,它不允許計算hypergeom(1:2,2,5 )以我想要的方式。
Patrick Mousaw上傳了他用於匯合超幾何函數的Matlab代碼(https://nl.mathworks.com/matlabcentral/fileexchange/29766-confluent-hypergeometric-function),這是我使用的超幾何函數的版本。稍微適應他的代碼,允許元素乘法,正是我想要的。 :)
'hypergeom'只能通過第三個參數進行矢量化。要使用第一個參數的多個值,您必須使用循環 –