Filter löschen
Filter löschen

How can I plot the functions in my code according to theta?

3 Ansichten (letzte 30 Tage)
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 Kommentare
Burak
Burak am 9 Apr. 2013
yes exactly I want that , F_Er,F_Etheta , F_Ephi has to be function of theta.
Walter Roberson
Walter Roberson am 9 Apr. 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?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 9 Apr. 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 Kommentare
Walter Roberson
Walter Roberson am 10 Apr. 2013
Could you post a higher resolution image of the functions?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by