# Differences

This shows you the differences between two versions of the page.

 vpde_lecture24 [2020/04/04 22:55]trinh [Example 15.4: Solution of the inhomogeneous Dirichlet problem] vpde_lecture24 [2020/04/04 23:00] (current)trinh Both sides previous revision Previous revision 2020/04/04 23:00 trinh 2020/04/04 22:55 trinh [Example 15.4: Solution of the inhomogeneous Dirichlet problem] 2020/04/04 22:55 trinh 2020/04/04 22:06 trinh 2020/03/28 12:43 trinh created 2020/04/04 23:00 trinh 2020/04/04 22:55 trinh [Example 15.4: Solution of the inhomogeneous Dirichlet problem] 2020/04/04 22:55 trinh 2020/04/04 22:06 trinh 2020/03/28 12:43 trinh created Line 29: Line 29:  + We also illustrated the solution using the code: + + <​Code:​Matlab linenums:1 |Inhomogeneous heat equation>​ + %% Plot the Fourier series for Example 15.4 + % Written for MA20223 Vectors & PDEs 2019-20 + + clear           % Clear all variables + close all       % Close all windows + N = 100;        % How many Fourier modes to include? + + R = @(n, t, x) 2/​(n*pi)*((-1)^n - 2)*exp(-n^2*t)*sin(n*x);​ + + % Create a mesh of points between two limits + x0 = pi; x = linspace(0, x0, 1000); + + % Create a mesh of points in time + t = linspace(0, 5, 200); + + figure(1); ​                             % Open the figure + plot(x, 2 - x/pi, '​b',​ '​LineWidth',​ 2); % Plot the base function + ylim([-0.2,​2]); ​                        % Set the y limits + xlim([0, x0]);                          % Set the x limits + xlabel('​x'​);​ ylabel('​u(x,​t)'​);​ + hold on + + for j = 1:length(t) + tj = t(j); + ​ + u = (2 - x/pi); + for n = 1:N + u = u + R(n, tj, x); + end + if j == 1 + p = plot(x, u, '​r'​);​ + else + set(p, '​YData',​ u); + end + drawnow + title(['​t = ', num2str(tj)]);​ + pause(0.1); + + if j == 1 + pause + end + end + ​ + + ===== Problem set 8 Q1 ===== + + The next thing we studied was PS8, Q1, which is the solution of the homogeneous Neumann problem for the heat equation. ​ + + <​Code:​Matlab linenums:1 |Modification of PS8 Q1> + %% Plot the Fourier series for a made-up modification of PS8 Q1. + % Written for MA20223 Vectors & PDEs + + clear           % Clear all variables + close all       % Close all windows + N = 20;          % How many Fourier modes to include? + + % Define an in-line function that takes in three inputs: ​ + R = @(n, t, x) 4*(-1)^n/​n^2*cos(n*x)*exp(-n^2*t);​ + + % Create a mesh of points between two limits + x0 = pi; + x = linspace(0, x0, 1000); + + % Create a mesh of points in time + t = linspace(0, 5, 200); + + figure(1); ​                             % Open the figure + plot(x, x.^2, '​b',​ '​LineWidth',​ 2);     % Plot the base function + ylim([-0.2,​pi^2]); ​                     % Set the y limits + xlim([0, x0]);                          % Set the x limits + xlabel('​x'​);​ ylabel('​u(x,​t)'​);​ + hold on + + for j = 1:length(t) + tj = t(j); + ​ + u = 1/​2*(2*pi^2/​3);​ + for n = 1:N        ​ + u = u + R(n, tj, x); + end + if j == 1 + p = plot(x, x.^2, '​r'​);​ + else + set(p, '​YData',​ u); + end + drawnow + title(['​t = ', num2str(tj)]);​ + pause(0.1); + + if j == 1 + pause + end + end + 