diff --git a/Sheet_4/Ex_4_B.m b/Sheet_4/Ex_4_B.m new file mode 100644 index 0000000..4ed44f0 --- /dev/null +++ b/Sheet_4/Ex_4_B.m @@ -0,0 +1,32 @@ +% Sheet 4 / Task B + +ne = 50; % number of elements +nodes = linspace(0,1,ne+1); + +K = zeros(ne+1,ne+1); % global stiffness matrix +f = zeros(ne+1,1); % load vector + +lambda = @(x) (x<1/sqrt(2))*1 + (x>=1/sqrt(2))*10; + +for e = 1:ne + xleft = nodes(e); + xright = nodes(e+1); + Ke = ne^2*[integral(lambda,xleft,xright), -integral(lambda,xleft,xright); + -integral(lambda,xleft,xright), integral(lambda,xleft,xright)]; + + K(e:e+1, e:e+1) = K(e:e+1, e:e+1) + Ke; +end + +% disp(K) + +% adaption for dirichlet boundary +K(1,1) = K(1,1)*(1 + 1e6); +f(end) = K(end,end)*1e6; +K(end,end) = K(end,end)*(1 + 1e6); + +u = K\f; + +plot(nodes,u) +title('approximation of solution u'); +xlabel('x values'); +ylabel('u_h'); diff --git a/Sheet_4/Ex_4_C.m b/Sheet_4/Ex_4_C.m new file mode 100644 index 0000000..c9d7bc3 --- /dev/null +++ b/Sheet_4/Ex_4_C.m @@ -0,0 +1,51 @@ +% Sheet 4 / Task C +clf + +nvec = [10, 20, 30, 40, 70]; % vector with number of elements +p = 70; % parameter of ode + +for k=1:length(nvec) + ne = nvec(k); + nodes = linspace(0,1,ne+1); + + K = zeros(ne+1,ne+1); % global stiffness matrix + f = zeros(ne+1,1); % load vector + + for e = 1:ne + xleft = nodes(e); + xright = nodes(e+1); + + % first part of the bilinearform phi'*phi' + funcone = @(x) 1 +0*x; + Ke = ne^2*[integral(funcone,xleft,xright), -integral(funcone,xleft,xright); + -integral(funcone,xleft,xright), integral(funcone,xleft,xright)]; + + % second part: phi'*phi + func1 = @(x) xright - x; + func2 = @(x) x - xleft; + Ke = Ke + p*ne^2*[-integral(func1,xleft,xright), integral(func1,xleft,xright); + -integral(func2,xleft,xright), integral(func2,xleft,xright)]; + + K(e:e+1, e:e+1) = K(e:e+1, e:e+1) + Ke; + end + + % disp(K) + + % adaption for dirichlet boundary + K(1,1) = K(1,1)*(1 + 1e6); + f(end) = K(end,end)*1e6; + K(end,end) = K(end,end)*(1 + 1e6); + + u = K\f; + + hold on + plot(nodes,u) + title('approximation of solution u for p=70'); + xlabel('x values'); + ylabel('u_h'); + grid on; + leg = legend(num2str(nvec'),'Location', 'Northwest'); + title(leg, 'n ='); + +end +saveas(gcf, 'ex_4_C_plot.jpg'); \ No newline at end of file diff --git a/Sheet_4/ex_4_C_plot.jpg b/Sheet_4/ex_4_C_plot.jpg new file mode 100644 index 0000000..02ab4aa Binary files /dev/null and b/Sheet_4/ex_4_C_plot.jpg differ diff --git a/Sheet_4/sheet4_solutions_notes.pdf b/Sheet_4/sheet4_solutions_notes.pdf new file mode 100644 index 0000000..2c42de0 Binary files /dev/null and b/Sheet_4/sheet4_solutions_notes.pdf differ