How can I plot the functions in my code according to theta?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Here is my code.
clear all
format long
tic
N_cut=20;
eps0=(10^-9)/(36*pi);
mu0=4*pi*10^-7;
epsr1=1.;
epsr2=2.;
mur1=1.;
mur2=1.;
eps1=epsr1*eps0;
eps2=epsr2*eps0;
mu1=mur1*mu0;
mu2=mur2*mu0;
freq=299.7925*10^6;
omeg=2*pi*freq;
k=omeg*sqrt(eps1*mu1);
lambda=2*pi/k;
phi=45;
R=1.1;
for n=1:N_cut
bes_kur1(n)=sqrt(pi.*k.*R./2).*besselj(n+0.5,k.*R);
han_kur1(n)=sqrt(pi.*k.*R./2).*besselh(n+0.5,2,k.*R);
bes_kur_der1(n)=-n.*sqrt(pi.*k./(2.*R)).*besselj(n+0.5,k.*R)+k.*sqrt(pi.*k.*R./2).*besselj(n-0.5,k.*R);
han_kur_der1(n)=-n.*sqrt(pi.*k./(2.*R)).*besselh(n+0.5,2,k.*R)+k.*sqrt(pi.*k.*R/2).*besselh(n-0.5,2,k.*R);
han_kur_dd(n)=sqrt(pi.*k.*R./2).*besselh(n+2.5,2,k.*R)-sqrt(pi./(2.*k.*R)).*(2.*n+3).*besselh(n+1.5,2,k.*R)+sqrt(pi./(2.*(k.*R).^3)).*...
n.*(n+1).*besselh(n+0.5,2,k.*R);
a(n)=(1i.^(-n)).*(2.*n+1)./(n.*(n+1));
b(n)=(-a(n)).*bes_kur_der1(n)./han_kur_der1(n);
c(n)=(-a(n)).*bes_kur1(n)./han_kur1(n);
L1=legendre(n,cosd(theta));
L11=legendre(n-1,cosd(theta));
L2(n)=L1(2);
if n==1
L3(n)=0.;
else
L3(n)=L11(2);
end
L2_der(n)=(-(n+1).*L3(n)+n.*cosd(theta)).*L2(n)/sind(theta);
E_r=((-1i.*cosd(phi).*b(n).*L3(n).*(han_kur_dd(n)+han_kur1(n))));
E_theta=(cosd(phi)./(k.*R)).*((1i)*b(n)*han_kur_der1(n).*sin(theta).*L2_der(n)-c(n).*han_kur1(n)*(L3(n)./sin(theta)));
E_phi=(sin(phi))./(k.*R).*(((1i).*b(n).*han_kur_der1(n).*(L3(n)./(sin(theta))))-(c(n).*han_kur1(n).*sin(theta)).*L2_der(n));
end
F_Er=sum(E_r);
F_Etheta=sum(E_theta);
F_Ephi=sum(E_phi);
figure
plot(theta,abs(F_Er)),grid on
hold
figure
plot(theta,abs(F_Etheta)),grid on
hold
figure
plot(theta,abs(F_Ephi)),grid on
hold
3 comentarios
Walter Roberson
el 9 de Abr. de 2013
Hmmm, okay, but are you going to be doing anything with the formulas afterwards that you need them to be in function form? Or do you just need to be able to plot, in which case you could possibly proceed with numeric theta?
Respuesta aceptada
Walter Roberson
el 9 de Abr. de 2013
At the beginning of the code, put in
syms theta
then before you go to plot, you need to choose specific theta to plot for, such as by
Thetas = linspace(0, 2*pi, 100);
val_F_Er = double( subs(F_er, theta, Thetas) );
val_F_Etheta = double( subs(F_Etheta, theta, Thetas) );
val_F_Ephi = double( subs(F_Ephi, theta, Thetas) );
figure
plot(Thetas, abs(val_F_Er));
figure
plot(Thetas, abs(val_F_Etheta));
figure
plot(Thetas, abs(val_F_Ephi));
8 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Assumptions en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!