Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Finished all problems
  • Loading branch information
mjb13028 committed Dec 5, 2017
1 parent 0d00e47 commit bfe5886
Show file tree
Hide file tree
Showing 11 changed files with 189 additions and 16 deletions.
39 changes: 24 additions & 15 deletions HW6Problem2.m
@@ -1,20 +1,29 @@
%Part a.
y_analytical = @(t) exp(-t);

%Part b.
dt = [0.001];
figure()
dt = 0.01; %step size
a = figure(1);
set(0, 'defaultAxesFontsize', 16)
set(0, 'defaultTextFontsize', 16)
set(0, 'defaultLineLineWidth', 2)
hold on
for k = 1:length(dt)
t = [0:dt:3]';
y_n = zeros(size(t));
y_n(1) = 1; %initial condition
for i = 2:length(t)
dy = ode2(t, y_n(i-1));
y_n(i) = y_n(i-1) + dt(k)*dy;
end

plot(t, exp(-t), 'k-', t, y_n, 'o-');
t = [0:dt:3]';
y_n = zeros(size(t));
y_n(1) = 1; %initial condition
for i = 2:length(t)
dy = ode2(t, y_n(i-1));
y_n(i) = y_n(i-1) + dt*dy;
end
plot(t, y_analytical(t), 'k-', t, y_n, 'o-');
title('Analytical vs. Euler')
legend('Analytical', 'Euler', 'Location', 'Northeast')
saveas(a, 'euler.png');

%Part c.
figure()
y_heun = heun_sol_order1(@(t,y) ode2(t,y), 1, 1, [0 3]);
plot([0:1:3], y_heun);
b = figure(2);
y_heun = heun_sol_order1(@(t,y) ode2(t,y), dt, 1, [0 3]);
plot(t, y_analytical(t), 'k-', t, y_heun, 'o-');
title('Analytical vs. Heun')
legend('Analytical', 'Heun', 'Location', 'Northeast')
saveas(b, 'heun.png');
27 changes: 27 additions & 0 deletions HW6Problem2.m~
@@ -0,0 +1,27 @@
%Part a.
y_analytical = @(t) exp(-t);

%Part b.
dt = 0.01; %step size
a = figure(1);
set(0, 'defaultAxesFontsize', 16)
set(0, 'defaultTextFontsize', 16)
set(0, 'defaultLineLineWidth', 2)
hold on
t = [0:dt:3]';
y_n = zeros(size(t));
y_n(1) = 1; %initial condition
for i = 2:length(t)
dy = ode2(t, y_n(i-1));
y_n(i) = y_n(i-1) + dt*dy;
end
plot(t, y_analytical(t), 'k-', t, y_n, 'o-');
title('Analytical vs. Euler')
legend('Analytical', 'Euler', 'Location', 'Northeast')
saveas(a, 'euler.png');

%Part c.
b = figure(2)
y_heun = heun_sol_order1(@(t,y) ode2(t,y), 1, 1, [0 3]);
plot([0:1:3], y_heun);
plot(t, y_analytical(t), 'k-', t, y_heun, 'o-');
27 changes: 27 additions & 0 deletions HW6Problem4.m
@@ -0,0 +1,27 @@
%part a.
t = [0:.1:12];
g = 9.81; %m/s^2
cd = 0.25; %kg/m
m = 60; %kg
v_term = sqrt(m*g/cd);
x_analytical = @(t) ((v_term^2)/g)*log(abs(cosh((g*t)/v_term))) + 100;


plot(t, x_analytical(t))

%part b.
%dy = ode4(0, [1;0]);
dt = [0.1 0.01];
figure()
hold on
for k = 1:length(dt)
t = [0:dt(k):12]';
y_n = zeros(length(t), 2);
y_n(1, :) = [100 0]; %initial condition
for i = 2:length(t)
dy = ode4(t(i-1), y_n(i-1, :));
y_n(i, :) = y_n(i-1, :) + dt(k)*dy;
end
%[t23, y23] = ode23(@(t,y) phugoid_ode(t,y), [0,20], [10 0 0 2]);
plot(t, x_analytical(t), '.', t, y_n(:,1), 's');
end
27 changes: 27 additions & 0 deletions HW6Problem4.m~
@@ -0,0 +1,27 @@
%part a.
t = [0:.1:12];
g = 9.81; %m/s^2
cd = 0.25; %kg/m
m = 60; %kg
v_term = sqrt(m*g/cd);
x_analytical = @(t) ((v_term^2)/g)*log(abs(cosh((g*t)/v_term))) + 100;


plot(t, x_analytical(t))

%part b.
dy = ode4(0, [1;0]);
dt = [0.1 0.01];
figure()
hold on
for k = 1:length(dt)
t = [0:dt(k):12]';
y_n = zeros(length(t), 4);
y_n(1, :) = [10 0 0 2]; %initial condition
for i = 2:length(t)
dy = phugoid_ode(t(i-1), y_n(i-1, :));
y_n(i, :) = y_n(i-1, :) + dt(k)*dy;
end
[t23, y23] = ode23(@(t,y) phugoid_ode(t,y), [0,20], [10 0 0 2]);
plot(y_n(:,3), y_n(:, 4), '.', y23(:,3), y23(:,4), 's');
end
16 changes: 16 additions & 0 deletions HW6Problem5.m
@@ -0,0 +1,16 @@
%Part b.
dy = ode3(0, [1;0]);
dt = [0.1 0.01];
figure()
hold on
for k = 1:length(dt)
t = [0:dt(k):20]';
y_n = zeros(length(t), 4);
y_n(1, :) = [10 0 0 2]; %initial condition
for i = 2:length(t)
dy = phugoid_ode(t(i-1), y_n(i-1, :));
y_n(i, :) = y_n(i-1, :) + dt(k)*dy;
end
[t23, y23] = ode23(@(t,y) phugoid_ode(t,y), [0,20], [10 0 0 2]);
plot(y_n(:,3), y_n(:, 4), '.', y23(:,3), y23(:,4), 's');
end
19 changes: 19 additions & 0 deletions HW6Problem5.m~
@@ -0,0 +1,19 @@
%Part b.
dy = ode3(0, [1;0]);
dt = [0.1];
figure()
hold on
for k = 1:length(dt)
t = [0:dt(k):20]';
y_n = zeros(length(t), 4);
y_n(1, :) = [10 0 0 2]; %initial condition
for i = 2:length(t)
dy = phugoid_ode(t, y_n(i-1, :));
y_n(i, :) = y_n(i-1, :) + dt(k)*dy;
end
[t23, y23] = ode23(@(t,y) phugoid_ode(t,y), [0,20], [100 0 0 2]);
plot(y_n(:,3), y_n(:, 4));
%plot(t, cos(3*t), 'k-', t, y_n(:,1), 'o-');
end

%Part c.
40 changes: 39 additions & 1 deletion README.md
@@ -1 +1,39 @@
# 06_initial_value_ode
# 06_initial_value_ode

## Problem 2

### Script:
```matlab
%Part a.
y_analytical = @(t) exp(-t);
%Part b.
dt = 0.01; %step size
a = figure(1);
set(0, 'defaultAxesFontsize', 16)
set(0, 'defaultTextFontsize', 16)
set(0, 'defaultLineLineWidth', 2)
hold on
t = [0:dt:3]';
y_n = zeros(size(t));
y_n(1) = 1; %initial condition
for i = 2:length(t)
dy = ode2(t, y_n(i-1));
y_n(i) = y_n(i-1) + dt*dy;
end
plot(t, y_analytical(t), 'k-', t, y_n, 'o-');
title('Analytical vs. Euler')
legend('Analytical', 'Euler', 'Location', 'Northeast')
saveas(a, 'euler.png');
%Part c.
b = figure(2);
y_heun = heun_sol_order1(@(t,y) ode2(t,y), dt, 1, [0 3]);
plot(t, y_analytical(t), 'k-', t, y_heun, 'o-');
title('Analytical vs. Heun')
legend('Analytical', 'Heun', 'Location', 'Northeast')
saveas(b, 'heun.png');
```

### Part a.
![Analytical vs. Euler](./euler.png)
1 change: 1 addition & 0 deletions README.md~
@@ -0,0 +1 @@
# 06_initial_value_ode
Binary file added euler.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added heun.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions ode4.m
@@ -0,0 +1,9 @@
function dx = ode4(t,x)
%differential equation from hw6 problem 4
g = 9.81; %m/s^2
cd = 0.25; %kg/m
m = 60; %kg
dx = zeros(size(x));
dx(1) = x(2);
dx(2) = g - (cd/m)*x(2)^2;
end

0 comments on commit bfe5886

Please sign in to comment.