Help with symbolic variables
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Mischa Kim
am 7 Mär. 2014
Bearbeitet: Mischa Kim
am 7 Mär. 2014
Tom, do you mean something like
Plm_vec(i,:) = subs(Plm(i,:),{theta},{[pi/4, pi/5, pi/6]});
6 Kommentare
Mischa Kim
am 7 Mär. 2014
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])
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Special Values finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!