2012-01-08 12 views
2

Matlabには、関連するルジャンドル関数を決定するための組み込み関数があることがわかりました。私はそれらの事例であるルジャンドル多項式を計算したいと思います。私はこの作業のために私自身のコードを書いており、Matlab組み込み関数と比較しています。ここでは比較のコードは次のとおりです。これらは、私の結果ですルジャンドル多項式のMatlabコードの最適化

function op 
t1 = zeros(1,100); 
t2 = zeros(1,100); 
P1 = zeros(1,10); 
for m = 1:100 
tic; 
% It is neccessary a for loop for the first ten terms (m =1,...,10) of 
% Legendre polynomial with legendre matlab built-in function 
for i = 1:10 
    A = legendre(i,0);% legendre function determines the associated 
    % Legendre functions 
    P1(i) = A(1,1);% Legendre polynomials are the first row of A 
end 
t1(m) = toc; 
tic; 
% My own function determines the first ten terms at a time 
P2 = legendrep2(0,10); 
t2(m) = toc; 
end 
% Mean time using the Matlab built-in legendre functions 
t1_mean = mean(t1), 
% Mean time using my own custom legendre polynomial function 
t2_mean = mean(t2), 

function [Pl] = legendrep2(gamma,fin_suma) 
Pl = zeros(1,fin_suma); 
Pl(1) = gamma; 
Pl(2) = 0.5*(3*gamma*Pl(1)-1); 
    for j =3:fin_suma; 
     Pl(j) = ((2*j-1)*gamma*Pl(j-1)-(j-1)*Pl(j-2))/j; 
    end 
end 
end 

t1_mean = 
    0.001621042906210 
t2_mean = 
     7.536710452587590e-006 

だから、私はまだ多くの私のコード(legendrep2機能)を改善するための任意の可能性があるかどうかを知りたいです。 - >デスクトップ - >プロファイラ

これは、あなたが焦点を当てるのに役立ちます

メニュー:

+0

非常に高い多項式の順序が必要な場合、またはこの関数を何度も評価する必要があるため、ランタイムは問題ですか? –

+0

はい、私はこの機能を何度も評価する必要があります。ご意見ありがとうございます。 – julian

答えて

2

は、ボトルネックがどこにあるか見つけるためにMatlabのプロファイラをお試しください。