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

 Réponse acceptée

Torsten
Torsten le 28 Mar 2019
Modifié(e) : Torsten le 28 Mar 2019

1 vote

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 commentaires

STP
STP le 28 Mar 2019
Modifié(e) : STP le 29 Mar 2019
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 le 29 Mar 2019
Modifié(e) : Torsten le 29 Mar 2019
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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by