ルジャンドル多項式を n 次まで数値的に使用するコードを作成しました。例えば:
....
case 8
p = (6435*x.^8-12012*x.^6+6930*x.^4-1260*x.^2+35)/128; return
case 9
...
ベクトルx
が長い場合、これは遅くなる可能性があります。x.^4
sayとsay の間にパフォーマンスの違いがあることがわかりx.*x.*x.*x
、これを使用してコードを改善できると考えました。私はそれを使用timeit
して見つけました:
x=linspace(0,10,1e6);
f1= @() power(x,4)
f2= @() x.4;
f3= @() x.^2.^2
f4= @() x.*x.*x.*x
f4
他のものよりも2 倍高速です。ただし、私が行くと、との間にほとんど違いはありません (他のすべてのオプションは遅くなります)。x.^6
(x.*x.*x).^2
x.*x.*x.*x.*x.*x
ベクトルのべき乗を取得する最も効率的な方法を教えてください。パフォーマンスに大きな違いがある理由を説明できますか?