Need help solving first order DiffyQ analytically with matrix

조회 수: 5 (최근 30일)
Eva Carrillo
Eva Carrillo 2019년 12월 10일
편집: Ridwan Alam 2019년 12월 10일
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
Chuguang Pan
Chuguang Pan 2019년 12월 10일
The right n*y(n)+delta*(-i*H*psi) is 2x1 matrix, but left y(n+1) is scalar!
Eva Carrillo
Eva Carrillo 2019년 12월 10일
How would I change y to be a matrix?

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

채택된 답변

Ridwan Alam
Ridwan Alam 2019년 12월 10일
편집: Ridwan Alam 2019년 12월 10일
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!

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Gamma Functions에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by