私は、hypergeom(a、b、z)を呼び出すことによってMatlabの一般化された超幾何関数を使用しています。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関数です。
標準組み込み関数hypergeomは、hypergeom(1:2,2,5)の計算を許可しない一般化された超幾何関数です。これは、長さ(N)= 1と長さ)私がそれを望む方法で。
Patrick Mousawは、私が使用している超幾何関数のバージョンである合流超幾何関数(https://nl.mathworks.com/matlabcentral/fileexchange/29766-confluent-hypergeometric-function)のMatlabコードをアップロードしました。要素ごとの乗算を可能にする、自分のコードへの少しの適応は、私が望むものを正確に返します。 :)
'hypergeom'は3番目の引数に対してのみベクトル化します。最初の引数のいくつかの値を使用するには、ループを使用する必要があります –