Need help solving first order DiffyQ analytically with matrix

6 vues (au cours des 30 derniers jours)
Eva Carrillo
Eva Carrillo le 10 Déc 2019
Modifié(e) : Ridwan Alam le 10 Déc 2019
I'm given the equation . This can also be written as . Where where and is a 2x1 matrix with initial value of . I need to solve this problem analytically with Euler method, I've already solved it numerically. I need to plot time vs. intensity.
my code attempt is as follows:
gamma=0.5;
H=[(gamma*i) -1;-1 -i*gamma];
G=(2:2);
psi=(2:1);
psi(1,1)=1;
psi(2,1)=0;
T=10;
N=1000;
deltat=T/N;
x=[];
y=[];
t=[];
x(1)=0.5;
y(1)=0;
t(1)=0;
t1=[];
for t=1:N
t1(end+1)=t;
x(t+1)=x(t)+y(t)*deltat;
y(t+1)=y(t)+deltat*(-i*H*psi);
intensity=abs(y).^2;
int1(end+1)=intensity(1,1);
int2(end+1)=intensity(2,1);
end
plot (t1,int1,'-*');
hold on;
plot (t1,int2,'-*');
hold off;
I keep getting the error 'Unable to perform assignment because the left and right sides
have a different number of elements.' for line 36: y(n+1)=n*y(n)+deltat*(-i*H*psi);
I am very confused by this and could use the help!
  2 commentaires
Chuguang Pan
Chuguang Pan le 10 Déc 2019
The right n*y(n)+delta*(-i*H*psi) is 2x1 matrix, but left y(n+1) is scalar!
Eva Carrillo
Eva Carrillo le 10 Déc 2019
How would I change y to be a matrix?

Connectez-vous pour commenter.

Réponse acceptée

Ridwan Alam
Ridwan Alam le 10 Déc 2019
Modifié(e) : Ridwan Alam le 10 Déc 2019
If I understood it right, your x and y are supposed to be 2x1 vectors.
gamma=0.5;
H=[(gamma*i) -1;-1 -i*gamma];
% G=(2:2); % where is it used?
psi=zeros(2,1);
psi(1)=1;
psi(2)=0;
T=10;
N=1000;
deltat=T/N;
x1=0.5;
y1=0;
t=0;
x=[x1; x1];
y=[y1; y1];
t1=[]; int1 = []; int2 = [];
for t=1:N
t1(end+1)=t;
x(:,t+1)=x(:,t)+y(:,t)*deltat;
y(:,t+1)=y(:,t)+deltat*(-i*H*psi);
intensity=abs(y(:,t+1)).^2;
int1(end+1)=intensity(1);
int2(end+1)=intensity(2);
end
plot (t1,int1,'-*');
hold on;
plot (t1,int2,'-*');
hold off;
Hope this helps!

Plus de réponses (0)

Catégories

En savoir plus sur Gamma Functions dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by