How to integrate a matrix using dblquad to find Energy error

1 次查看(过去 30 天)
I needed a little advise on how to find the ‘Energy-Error'.
For example, let the finite elements be square ,
let A = [-1 -5 1; 3 2 0; 2 -1 1], the finite element solution matrix ( 3x3).
Let A11= [ -1 5 ; 3 2], A12=[-5 1 ;2 0], A21=[3 2, 2 -1] A22= [2 0, -1 1]
be the 2x2 matrices of the finite element solution matrix(A).
D = [0,1] x [0,1], be the square domain and h=0.5.
What I want to do is -integrating the square of the difference in the gradients within an element and then integrating over each element of the grid (using dblquad) and summing. I have tried the following way:
Let u(x,y) = x.*(1-exp((y-1)))/(1-exp(-2)), be the exact solution of the given equation.
Let [A11 x, A11y] = gradient(A11,0.5,0.5) be gradient of A11 (2x2 matrix).
Let the gradient of the exact solution u be
grad1 = diff(u(x,y),x)
grad2 = diff(u(x,y),y)
gradu = simplify([grad1;grad2])
Therefore, we have
z = (grad1 - A11x) ^ 2 + (grad2 - A11y) ^ 2
which is for one element.
Then I use the dblquad integration to find the integration of z i.e.,
Q = dblquad(@(x,y) z, xmin, xmax, ymin, ymax, tol)
but error occurred.
Please help me to integrate ‘z’ over each element of the grid (using dblquad) and then summing all 4 elements integration.
Thank you for everything !

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Computations 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by