17 lines
448 B
Matlab
17 lines
448 B
Matlab
function [K,F] = assemble_1D(x,lambda,f)
|
|
N = length(x);
|
|
K = zeros(N);
|
|
F = zeros(N,1);
|
|
|
|
for i = 1:N-1
|
|
h = x(i+1)-x(i);
|
|
xm = (x(i)+x(i+1))/2; %mid point evaluation
|
|
lam = lambda(xm);
|
|
Ke = lam/h * [1 -1; -1 1]; %exact P1 stiffness matrix
|
|
xm = (x(i)+x(i+1))/2;
|
|
Fe = f(xm)*h/2 * [1;1]; %mid point quadrature for RHS
|
|
%assembly into global system
|
|
K(i:i+1,i:i+1) = K(i:i+1,i:i+1) + Ke;
|
|
F(i:i+1) = F(i:i+1) + Fe;
|
|
end
|
|
end
|