solving two differential equation by BVP method (using bvp5c)

3 ビュー (過去 30 日間)
sara kian
sara kian 2013 年 4 月 18 日
Hi, I am trying to solve two differential equation by BVP method (using bvp5c).This simulation is a part of a paper and I use a test value for the buondary condition(I mean the value of the BC is not mentioned in the paper and Ijust guess),I want to get Fig.3 of the paper but I dont get result.can anyone help me?
Here is the paper & the M-file I've used.
MATLAB code :
function rt=coupler()
% just A+ & B- two equations
%% Start solving Boundry Value Problem
dbstop if error
L=5e-3;
lambda=linspace(1.5494e-6,1.5506e-6,8)
gp=5.3e-7;
%----------------------------------------------------------------
for i=0:7
i=i+1
lambda(i)
k0=2*pi/lambda(i)
deltaneff=1e-4
kapa=(pi/lambda(i))*deltaneff;
beta1=k0*1.47;
beta2=k0*1.457;
deltabeta1=beta1-pi/gp
deltabeta2=beta2-pi/gp
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
solinit = bvpinit(linspace(0,L,100),[2.5 0.00000]);
sol = bvp5c(@twoode,@twobc,solinit);
x = linspace(0,L);
y = deval(sol,x);
T(i)=(abs(y(1,end)/y(1,1))^2)
R(i)=(abs(y(2,1)/y(1,1))^2)
end
%-------------------------------------------------------------------------
y(1,1)
y(2,end)
%figure
%plot(x,abs(y(1,:)))
ylabel('y1')
%figure
%plot(x,abs(y(2,:)))
ylabel('y2')
%figure
plot(lambda,T,lambda,R)
ylabel('T , R')
figure
plot(lambda,R)
ylabel('R')
%figure
%plot(lambda,H)
%ylabel('R+T')
%##########################################################################
%Start Functions
function dydx = twoode(x,y)
dydx(1)=1j*kapa*y(2)*exp(1j*(deltabeta1-deltabeta2)*x);
dydx(2)=1j*kapa*y(1)*exp(-1j*(deltabeta1-deltabeta2)*x);
end
function res = twobc(ya,yb)
res = [ ya(1)-2.5 yb(2)];
end
rt=0;
end

回答 (0 件)

カテゴリ

Help Center および File ExchangePurple についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by