Help with symbolic variables
    조회 수: 5 (최근 30일)
  
       이전 댓글 표시
    
Sorry, reposting this question again to see if any of you kind folk can help.
Hello,
I have the following to calculate associated legendre polynomials (in terms of angles: http://en.wikipedia.org/wiki/Associated_legendre_polynomials#Reparameterization_in_terms_of_angles)
%Calculating associated legendre polynomials %Using Rodriguez formula
 syms z theta
 m = 0;
 l = 0;
for i = 1:10
 Pl(i,:) = (inv((2^l)*factorial(l)))*diff(((z^2 - 1)^l),l);
 Plm(i,:) = ((-1)^m)*((sin(theta))^m)*diff(Pl(i,:),m);
 Plm(i,:) = subs(Plm(i,:), z, cos(theta)); 
l = l + 1;
 end
I am struggling to find the way to replace the symbolic variable theta with a vector containing numerical values.
Any help would be greatly appreciated.
Tom
댓글 수: 0
채택된 답변
  Mischa Kim
    
      
 2014년 3월 7일
        
      편집: Mischa Kim
    
      
 2014년 3월 7일
  
      Tom, do you mean something like
 Plm_vec(i,:) = subs(Plm(i,:),{theta},{[pi/4, pi/5, pi/6]});
댓글 수: 6
  Mischa Kim
    
      
 2014년 3월 7일
				Copy-paste-execute the code below in the MATLAB command window:
 clear all
 syms z theta
 m = 0;
 l = 0;
 for i = 1:10
    Pl(i,:) = (inv((2^l)*factorial(l)))*diff(((z^2 - 1)^l),l);
    Plm(i,:) = ((-1)^m)*((sin(theta))^m)*diff(Pl(i,:),m);
    Plm(i,:) = subs(Plm(i,:), z, cos(theta)); l = l + 1;
    Plm_vec(i,:) = subs(Plm(i,:),{theta}, {[pi/4, pi/5, pi/6]});
 end
 disp(Plm_vec)
you should get a 10-by-3 array of values. And, yes, you can evaluate outside the loop. E.g., following the loop you could do
 subs(Plm(3),{theta},[0:0.1:0.5])
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Special Values에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

