天天看點

matlab中power函數怎麼用_matlab中的廣義拉蓋爾函數

matlab中power函數怎麼用_matlab中的廣義拉蓋爾函數

在仿真與LG光相關的過程中難免需要廣義拉蓋爾函數。matlab中的拉蓋爾函數似乎是由于用的符号計算,有很多弊端,比如:不能用gpuArray、計算速度慢很多,在這裡推薦一個最近在matlab論壇發現的有人寫的廣義拉蓋爾函數,不僅速度快而且可以用gpuArray。

function L = mlaguerre(n,p,x)
ret = 0;
for i=0:n
sum1 = ret + (power(-1,i)* (factorial(n+p)/(factorial(n-i) * factorial(p+i) * factorial(i)))*power(x,i));
ret=sum1;
end
L=ret;
end
           

當生成600*600的LG_2^2時,在暗夜精靈5,matlab2019a用上述函數生成需要時間為0.016066s,而用matlab中的廣義拉蓋爾函數時需要148.781843s。