# How to integral function and plot it

1 view (last 30 days)
Tina Hsiao on 21 Jun 2021
Commented: Star Strider on 25 Jun 2021
Hi, Could you help me how to integral function "fun" and get the q, then plot dL vs q. The code as below. Thanks a lot.
clear all; close all; clc
Gamma = 1;
kappa = 0.75*Gamma;
Dp = 0*Gamma;
Dc = 0*Gamma;
Finese = 350;
OD0 = 0.025;
OD = (Finese/pi)*OD0;
G = OD;
Oc = 2*Gamma;
Op = 0.00001*Gamma;
T0 = 1;
rR = 0*Gamma;
dL = linspace(-6*Gamma,6*Gamma,2000);
kappat = -i*kappa/2+Dp-dL-df;
Gammat = -i*Gamma/2-dL-df;
gammat = -i*rR/2+Dc-dL-df;
Gammaf = 0.00001*Gamma;
A = -4*gammat.*Gammat;
T = T0*(kappa/2)^2.*...
abs((A+Oc^2)./((G^2*gammat)+(kappat.*(A+Oc^2)))).^2;
fun = @(df) (exp(-(df^2/Gammaf^2))/(sqrt(pi)*Gammaf))*T;
q = integral(fun,-Inf,Inf)
figure(1)
plot(dL, q)
xlabel ('dL')
ylabel('Transmission signal')
##### 2 CommentsShowHide 1 older comment
Tina Hsiao on 23 Jun 2021
Yes! kappat, Gammat, gammat are functions of df. The dL is an array once I get the q result. I would like to put all the value (eg. Gamma = 1; kappa = 0.75*Gamma; Dp = 0*Gamma; Dc = 0*Gamma; ...etc into q and with different dL. And plot dL vs q.

Star Strider on 23 Jun 2021
kappat, Gammat, gammat are functions of df.’
I created them (as well as ‘A’, ‘T’, and ‘fun’) as anonymous functions of ‘df’ to define them as such.
Check this to be certain it prooduces the desired result, otherwise make necessary corrections (since I do not understand what this code does) —
Gamma = 1;
kappa = 0.75*Gamma;
Dp = 0*Gamma;
Dc = 0*Gamma;
Finese = 350;
OD0 = 0.025;
OD = (Finese/pi)*OD0;
G = OD;
Oc = 2*Gamma;
Op = 0.00001*Gamma;
T0 = 1;
rR = 0*Gamma;
dL = linspace(-6*Gamma,6*Gamma,2000);
kappat = @(df) -i*kappa./2+Dp-dL-df;
Gammat = @(df) -i*Gamma./2-dL-df;
gammat = @(df) -i*rR./2+Dc-dL-df;
Gammaf = 0.00001*Gamma;
A = @(df) -4*gammat(df).*Gammat(df);
T = @(df) T0*(kappa/2)^2.*...
abs((A(df)+Oc^2)./((G^2*gammat(df))+(kappat(df).*(A(df)+Oc^2)))).^2;
fun = @(df) (exp(-(df.^2./Gammaf^2))./(sqrt(pi)*Gammaf)).*T(df);
q1 = integral(fun,-Inf,0, 'ArrayValued',1);
q2 = integral(fun,0,Inf, 'ArrayValued',1);
q = q1 + q2;
figure(1)
plot(dL, q)
xlabel ('dL')
ylabel('Transmission signal') Since ‘q’ as originally defined is uniformly 0, I broke it into two regions and added them.
.
##### 2 CommentsShowHide 1 older comment
Star Strider on 25 Jun 2021
As always, my pleasure!
Thank you!

R2017a

### Community Treasure Hunt

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

Start Hunting!