function my_ode() %parameters used inthe simulation.
pi= 3.143; lambda_1 = 1536 ; lambda_2 = 1538; lambda_s = 1534; lambda_0 = 1535; lambda_c = (lambda_1 + lambda_2)/2; w_0 = (2*pi)/lambda_0; w_1 = (2*pi)/lambda_1; w_2 = (2*pi)/lambda_2; w_s = (2*pi)/lambda_s; w_c = (2*pi)/lambda_c; B_3 =2.881*10^-2;B_4 =-1.852*10^-4;P_1 = 1;P_2 =1 ; gamma =122.7*10^-3; B_2 = B_3*(w_c - w_0)^2 + (B_4/2)*(w_c - w_0); delta_w_p = (w_2 - w_1)/2; delta_w_s = w_s - w_c; w_sb1 = 2*delta_w_p - delta_w_s; %w_sb2 = 2*delta_w_p - delta_w_s;
delta_w_sb = w_c - w_sb1; r = 2*gamma*sqrt(P_1*P_2); A_sb10 = 0; A_s0 = 1; A_10 = 0; A_sb20 = 0;% function to compute derivative of
%A = [A_s, A_1, A_sb1, A_sb2];
function dAdz = odefcn(~,A)dA_sb1dz = (1i/24)*A_sb1*(12*B_2*(delta_w_sb^2 - delta_w_p^2)... - 4*B_3*(delta_w_s^3-delta_w_p^3)+ B_4*(delta_w_sb^4 - delta_w_p^4))+1i*gamma...*P_1*(A_sb1 + conj(A_s))+ 1i*r*(conj(A_sb1) + A_s);dA_sdz = (1i/24)*A_s(12*B_2*(delta_w_s^2 - delta_w_p^2)... - 4*B_3*(delta_w_s^3-delta_w_p^3)+ B_4*(delta_w_s^4 - delta_w_p^4))+ 1i*gamma...*P_1*(conj(A_sb1) + A_s)+ 1i*r*(conj(A_1) + A_sb2);dA_1dz = (1i/24)*A_1(12*B_2*(delta_w_s^2 - delta_w_p^2)... + 4*B_3*(delta_w_s^3-delta_w_p^3)+ B_4*(delta_w_s^4 - delta_w_p^4))+1i*gamma...*P_2*(conj(A_sb2) + A_1)+ 1i*r*(conj(A_s) + A_sb1);dA_sb2dz = (1i/24)*A_sb2(12*B_2*(delta_w_sb^2 - delta_w_p^2)... + 4*B_3*(delta_w_sb^3-delta_w_p^3)+ B_4*(delta_w_sb^4 - delta_w_p^4))+1i*gamma...*P_2*(conj(A_1) + A_sb2)+ 1i*r*(conj(A_sb1) + A_s); dAdz = A; dAdz(:) = [dA_sb1dz dA_sdz dA_1dz dA_sb2dz]; end A0 = [A_s0 A_10 A_sb10 A_sb20]; [z,A] = ode45(@odefcn, [0 1], A0); A_sb1 = A(:,1); A_1 = A(:,3); A_s = A(:,2); A_sb2 = A(:,4); end
MATLAB: How do i solve the errors arising from this code
coupled ode equationsode45
Best Answer