我正在尝试在 Matlab 中构建二维泊松方程的右侧。我使用顶点规则来近似积分:
function F1 = rightVer(p,t,f)
%area triangle
it1=t(1,:);
it2=t(2,:);
it3=t(3,:);
area = ((p(1,it2)-p(1,it1)).*(p(2,it3)-p(2,it1))-(p(1,it3)-p(1,it1)).*(p(2,it2)-p(2,it1)))/2;
area = abs(area)/3;
vt1 = area.*f(p(1,it1),p(2,it1));
vt2 = area.*f(p(1,it2),p(2,it2));
vt3 = area.*f(p(1,it3),p(2,it3));
vt = [vt1';vt2';vt3'];
elem = t';
elem(:,4)=[];
N=size(p,2);
F1 = accumarray(elem(:),vt,[N 1]);
end
我也使用带有函数的pde 工具箱assema()构造它,但是我获得的两个 f 是相同的,除了最后 4 个数字。谁能帮我?