# ODEs system

4 views (last 30 days)

Show older comments

i'm trying to solve this system of differential equations, can someone told me how to use the ODE45 function?

dPp/dz= Pp*gammap*(sigmape*N2 −sigmapa*N1)−α*Pp;

dPs/dz= Ps*gammas*(sigmase*N2 −sigmasa*N1)−α*Ps:

dPASE/dz=PASE*gammas*(sigmaSE*N2-sigmasa*N1)+2*sigmase*h*gammas*Vs*Δv-alfas*PASE;

with N1=ρ*(1+W12*t)/(1+(W12+W21)*t+R*t)

N2=ρ*(R*t+W21*t)/(1+(W12+W21)*t+R*t)

W12=[(sigmasa*gammas) / (h*Vs*A)](Ps+PASE) W21=[(sigmase*gammas) / (h*Vs*A)](Ps+PASE) R=[(Pp*gammap*sigmapa) / (h*Vp*A)](Ps+PASE)

(gammap,gammas,sigmase,sigmape,sigmapa,sigmasa,h,Vs,Vp,A,Δv,α,ρ are known parameters).

##### 0 Comments

### Accepted Answer

Arnaud Miege
on 29 Jul 2011

Also, there seems to be 4 variables, not three. Below is the modified code I used and the results I get with your parameters. Again, check the values and the units.

Pp=y(1);

Ps=y(2);

PASE_plus=y(3);

PASE_minus=y(4);

W12=(((sigmasa*gammas)/(h*Vs*A))*(Ps+PASE_plus+PASE_minus));

W21=(((sigmase*gammas)/(h*Vs*A))*(Ps+PASE_plus+PASE_minus));

R=((Pp*gammap*sigmapa)/(h*Vp*A));

N1=(rho*((1+W21*t)/(1+(W12+W21)*t+R*t)));

N2=(rho*((R*t+W12*t)/(1+(W12+W21)*t+R*t)));

dydz(1)=Pp*gammap*(sigmape*N2-sigmapa*N1)-alfap*Pp;

dydz(2)=Ps*gammas*(sigmase*N2-sigmasa*N1)-alfas*Ps;

dydz(3)=PASE_plus*gammas*(sigmase*N2- ... sigmasa*N1)+2*sigmase*N2*gammas*h*Vs*deltav-alfas*PASE_plus;

dydz(4)=-PASE_minus*gammas*(sigmase*N2- ... sigmasa*N1)+2*sigmase*N2*gammas*h*Vs*deltav+alfas*PASE_minus;

And this is how I call the|ode| solver:

[z,y]=ode45('signalFW',[0 20],[10 0.001 0 0]);

figure(1),subplot(2,1,1),plot(z,y(:,1:2)),grid on,ylabel('Power in mW'),legend('Pp','Ps');

subplot(2,1,2),plot(z,y(:,3:4)),grid on,xlabel('length EDFA in m'),ylabel('Power in mW'),legend('PASE+','PASE-');

This gives me the following results:

Is that what you'd expect? If not, check the values of your parameters.

Arnaud

### More Answers (2)

Arnaud Miege
on 27 Jul 2011

Have a look at the examples provided in the documentation. You need to write a function that computes the derivatives of your variables as a function of time and the variables themselves, and pass this to the ode solver.

HTH,

Arnaud

##### 11 Comments

Arnaud Miege
on 29 Jul 2011

Can you just upload an image of the equations and the results you expect for certain numerical parameters?

http://www.mathworks.com/matlabcentral/answers/7924-where-can-i-upload-images-and-files-for-use-on-matlab-answers

Arnaud Miege
on 29 Jul 2011

This is the results I get with your code:

##### 2 Comments

Arnaud Miege
on 29 Jul 2011

### See Also

### Community Treasure Hunt

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

Start Hunting!