diff options
Diffstat (limited to 'coursework17')
| -rw-r--r-- | coursework17/ex4.m | 45 | 
1 files changed, 35 insertions, 10 deletions
diff --git a/coursework17/ex4.m b/coursework17/ex4.m index b82b60b..6f44271 100644 --- a/coursework17/ex4.m +++ b/coursework17/ex4.m @@ -23,20 +23,45 @@ u = zeros(length(t),length(x));  u(1,:) = 0;  u(1,length(x)) = 0; -% Initial condition -for i = 1:length(x) -    if x(i) <= 0.5 -        u(1,i) = 2*x(i);; -    else -        u(1,i) = 2*(1-x(i));  -    end +% % Initial condition 1 +% for i = 1:length(x) +%     if x(i) <= 0.5 +%         u(1,i) = 2*x(i);; +%     else +%         u(1,i) = 2*(1-x(i));  +%     end +% end + +% % Initial condition 2 +% for i = 1:length(x) +% 	u(1,i) = abs(sin(2*pi*x(i))); +% %	u(1,i) = sin(2*pi*x(i)); +% end + +% % Initial Condition 3  +%  for i = 0.25/dx:0.75/dx +%  	u(1,i) = 1; +%  end + + +% Initial Condition 4 +for i = 1:0.5/dx +	u(1,i) = -1;  end -         +for i = 0.5/dx+1:length(x) +	u(1,i) = 1; +end + + + +         for m = 1:length(t)      % Set boundaries -    u(m+1,1) = 0.5 * m /length(t);  -    u(m+1,length(x)) = 0.5 * m /length(t);  +%    u(m+1,1) = 0.5 * m /length(t);  +%    u(m+1,length(x)) = 0.5 * m /length(t);  +    u(m+1,1) = 0; +    u(m+1,length(x)) = 0;      for j = 2:(length(x)-1)          % multiply out (1-2v) and factorise out v          u(m+1,j) = u(m,j) + ((dt/(dx^2))*(u(m,j+1) - 2*u(m,j) + u(m,j-1)));   | 
