Error in ode function -- not enough input arguments

t1 = [0 4.4];
t2a = [4.4 4.7];
t2b = [4.7 5];
t3 = [5 8];
Ek1 = exp(1i*pi);
phi= pi./2;
k = -phi./(t2a(1)-t1(1));
Ek2a = @(t) exp(1i*(phi + k.*(t-t1(1))));
Ek2b = exp(1i*0);
Ek3 = 0;
Tc = 1.77;
alfa= 1.667;
dEc1dt = @(t, Ec, Tc) (-alfa.*Ek1)./Tc - Ec./Tc;
dEc2adt = @(t, Ec, Tc) (-alfa.*Ek2a)./Tc - Ec./Tc;
dEc2bdt = @(t, Ec, Tc) (-alfa.*Ek2b)./Tc - Ec./Tc;
dEc3dt = @(t, Ec, Tc) (-alfa.*Ek3)./Tc - Ec./Tc;
y1= 0;
[t1 Ec1] = ode15s(@(t,Ec)dEc1dt(t, Ec, Tc), t1, y1);
y2a= Ec1(end);
[t2a Ec2a] = ode15s(@(t,t1, t2a, phi, Ec)dEc2adt(t, Ec, t1, t2a, phi, Tc), t2a, y2a);
y2b= Ec2a(end);
[t2b Ec2b] = ode15s(@(t,Ec)dEc2bdt(t,Ec, Tc), t2b, y2b);
y3= Ec2b(end);
[t3 Ec3] = ode15s(@(t,Ec)dEc3dt(t,Ec, Tc), t3, y3);
E1 = Ec1 - 1;
E2a = Ec2a + 1;
E2b = Ec2b + 1;
E3 = Ec3 ;
t = [t1; t2a; t2b; t3];
E = [ E1; E2a; E2b; E3];
plot(t, E)
Trying to code the above picture ; but I get error in Error in (line 26)
[t2a Ec2a] = ode15s(@(t,t1, t2a, phi, Ec)dEc2adt(t, Ec, t1, t2a, phi, Tc), t2a, y2a);
Capture.JPG

 채택된 답변

Torsten
Torsten 2019년 3월 28일
편집: Torsten 2019년 3월 28일

1 개 추천

Change these lines:
dEc2adt = @(t, Ec,Tc) (-alfa.*Ek2a(t))./Tc - Ec./Tc;
[t2a Ec2a] = ode15s(@(t,Ec)dEc2adt(t, Ec,Tc), t2a, y2a);
You should read about how to parametrize functions.

댓글 수: 3

STP
STP 2019년 3월 28일
편집: STP 2019년 3월 29일
Oh!! I would read about it, thanks a bunch.
One follow up question - if I do the below then I get an error - matrix dimensions dont match - I know for E2a it becomes 101*1 instead of 56*1(which is t) -- is there a way to resolve this?
E1 = Ec1 + Ek1;
E2a = Ec2a + Ek2a(t);
E2b = Ec2b + Ek2b;
E3 = Ec3 + Ek3;
E =[Ek1; E2a; E2b; E3]; %% typo
plot(t, E)
yes it is the same you wrote -- but an error of matrix dimensions.
Torsten
Torsten 2019년 3월 29일
편집: Torsten 2019년 3월 29일
E =[t1; t2a; t2b; t3]; ?????
Maybe
E1 = Ec1 + Ek1;
E2a = Ec2a + Ek2a(t2a);
E2b = Ec2b + Ek2b;
E3 = Ec3 + Ek3;
t=[t1; t2a; t2b; t3];
E=[E1; E2a; E2b; E3];
plot(t,E)
?
@Torsten: +1, your latter comment made me laugh so bad :D

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Mathematics에 대해 자세히 알아보기

태그

질문:

STP
2019년 3월 28일

편집:

STP
2019년 3월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by