rbflapsolvecond.m

来自「本代码为基于matlab的求解偏微分方程的利用径向基函数的无网格方法的源码」· M 代码 · 共 34 行

M
34
字号
function R = rbfLapsolvecond (intpoints, intvalues, bndpoints, bndvalues)
% solver for Poisson problems, not completely tested yet
[numintpoints,dim]=size(intpoints);
[numbndpoints,dim]=size(bndpoints);
global RBForder
llmat=rbfLaplace(intbnddistances(intpoints,bndpoints));
if RBForder==0
    A=[rbfDLaplace(points2distances(intpoints)) llmat ; ... 
        llmat' rbf(points2distances(bndpoints)) ] ;      
    coeff=A\[intvalues; bndvalues];
    K=cond(A);
    R={coeff ;K};
    return;
end
if RBForder==1
    A=[rbfDLaplace(points2distances(intpoints)) llmat zeros(numintpoints,1) ; ...
            llmat' rbf(points2distances(bndpoints)) ones(numbndpoints,1) ; ...
            zeros(1,numintpoints) ones(1, numbndpoints) zeros(1,1)];       
    coeff=A\[intvalues ; bndvalues; zeros(1,1)];
    K=cond(A);
    R={coeff ;K};
    return;
end
if RBForder==2
    A=[rbfDLaplace(points2distances(intpoints))  llmat zeros(numintpoints,3) ;...
            llmat' rbf(points2distances(bndpoints)) ones(numbndpoints,1)  bndpoints ; ...
            zeros(1, numintpoints) ones(1, numbndpoints) zeros(1,3) ;...
            zeros(2, numintpoints) bndpoints'            zeros(2,3)];
    coeff=A\[intvalues ; bndvalues; zeros(3,1)];
    K=cond(A);
    R={coeff ;K};
    return;
end
error ('RBForder not implemented')

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?