⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parametrix4srm.m

📁 样条函数方法
💻 M
字号:
function [A,B,C,F,H,L] = parametrix4SRM(N,h)
%
clear all ; clc
N=6; h=0.1
Ndim=N+3;
A = zeros(Ndim,Ndim);B = zeros(Ndim,Ndim);C = zeros(Ndim,Ndim);
F = zeros(Ndim,Ndim);H = zeros(Ndim,Ndim);L = zeros(Ndim,Ndim);
switch N
    case 1,
        A(1,:) = [1/3,-1/2,0,1/6];
        A(2,2:3) = [1,-1/2];
        A(3,3:4) = [1,-1/2];
        A(4,4)=1/3; % right-upper is assigned
        A = sysMat(A);
        B(1,:) = [1/30,-7/120,1/60,1/120];
        B(2,:) = [1/40,-11/30,-11/120,11/60];
        B(3,:) = [11/60,-11/120,-11/30,11/40];
        B(4,:) = [1/120,1/60,-7/120,1/30]; % right-upper is assigned
        C(1,:) = [1/20,7/120,-1/10,-1/120];
        C(2,2:4) = [7/60,-29/120,-1/10];
        C(3,3:4) = [-17/60,7/120];
        C(4,4) = 1/20;
        C = sysMat(C);
        F(1,:) = [1/252,43/1680,1/84,1/5040];
        F(2,2:4) = [33/140,311/1680,1/84];
        F(3,3:4) = [33/140,43/1680];
        F(4,4) = 1/252;
        F = sysMat(F);
        H(1,:) = [-1/72,-1/80,1/40,1/720];
        H(2,:) = [-71/720,-5/24,61/240,19/360];
        H(3,:) = [-19/360,-61/240,5/24,71/720];
        H(4,:) = [-1/720,-1/40,1/80,1/72]; % right-upper is assigned
        L = -[-3 -5 7 1;5 3 -9 1;-1 9 -3 -5;-1 -7 5 3]/24;
    case 2,
        A(1,:) = [1/3,-1/2,0,1/6,0];
        A(2,2:5) = [4/3,-1,0,1/6];
        A(3,3:5) = [2,-1,0];
        A(4,4:5)=[4/3,-1/2]; 
        A(5,5)=1/3; % right-upper is assigned
        A = sysMat(A);
        B(1,:) = [1/30,-7/120,1/60,1/120,0];
        B(2,:) = [11/40,-1/3,-3/20,1/5,1/120];
        B(3,:) = [11/60,11/60,-11/15,11/60,11/60];
        B(4,:) = [1/120,1/5,-3/20,-1/3,11/40]; 
        B(5,:) = [0,1/120,1/60,-7/120,1/30]; % right-upper is assigned
        C(1,:) = [1/20,7/120,-1/10,-1/120,0];
        C(2,2:5) = [1/3,-11/60,-1/5,-1/120];
        C(3,3:5) = [17/30,-11/60,-1/10];
        C(4,4:5) = [1/3,7/120];
        C(5,5) = 1/20;
        C = sysMat(C);
        F(1,:) = [1/252,43/1680,1/84,1/5040,0];
        F(2,2:5) = [151/630,177/840,1/24,1/5040];
        F(3,3:5) = [33/70,177/840,1/84];
        F(4,4:5) = [151/630,43/1680];
        F(5,5) = 1/252;
        F = sysMat(F);
        H(1,:) = [-1/72,-1/80,1/40,1/720,0];
        H(2,:) = [-71/720,-2/9,29/120,7/90,1/720];
        H(3,:) = [-19/360,-127/360,0,127/360,19/360];
        H(4,:) = [-1/720,-7/9,-19/120,2/9,71/720];
        H(5,:) = [0,-1/720,-1/40,1/80,1/72]; % right-upper is assigned
        L = -[-3 -5 7 1 0;5 0 -14 8 1;-1 14 0 -14 1;-1 -8 14 0 -5;0 -1 -7 5 3]/24;
    case 3,
        A(1,:) = [1/3,-1/2,0,1/6,0,0];
        A(2,2:6) = [4/3,-1,0,1/6,0];
        A(3,3:6) = [7/3,-3/2,0,1/6];
        A(4,4:6)=[7/3,-1,0]; 
        A(5,5:6)=[4/3,-1/2];
        A(6,6)=1/3; % right-upper is assigned
        A = sysMat(A);
        B(1,:) = [1/30,-7/120,1/60,1/120,0,0];
        B(2,:) = [11/40,-1/3,-3/20,1/5,1/120,0];
        B(3,:) = [11/60,11/60,-7/10,1/8,1/5,1/120];
        B(4,:) = [1/120,1/5,1/8,-7/10,11/60,11/60]; 
        B(5,:) = [0,1/120,1/5,-3/20,1/3,11/40];
        B(6,:) = [0,0,1/120,1/60,-7/120,1/30]; % right-upper is assigned
        C(1,:) = [1/20,7/120,-1/10,-1/120,0,0];
        C(2,2:6) = [1/3,-11/60,-1/5,-1/120,0];
        C(3,3:6) = [37/60,-1/8,-1/5,-1/120];
        C(4,4:6) = [37/60,11/60,-1/10];
        C(5,5:6) = [1/3,7/120];
        C(6,6) = 1/20;
        C = sysMat(C);
        F(1,:) = [1/252,43/1680,1/84,1/5040,0,0];
        F(2,2:6) = [151/630,177/840,1/24,1/5040,0];
        F(3,3:6) = [599/1260,397/1680,1/24,1/5040];
        F(4,4:6) = [599/1260,177/840,1/84];
        F(5,5:6) = [151/630,43/1680];
        F(6,6) = 1/252;
        F = sysMat(F);
        H(1,:) = [-1/72,-1/80,1/40,1/720,0,0];
        H(2,:) = [-71/720,-2/9,29/120,7/90,1/720,0];
        H(3,:) = [-19/360,-177/360,-1/72,49/144,7/9,1/720];
        H(4,:) = [-1/720,-7/90,-49/144,1/72,177/360,19/360];
        H(5,:) = [0,-1/720,-7/9,-29/120,2/9,71/720];
        H(6,:) = [0,0,-1/720,-1/40,1/80,1/72]; % right-upper is assigned 
        L = -[-3 -5 7 1 0 0;5 0 -14 8 1 0;-1 14 -3 -19 8 1;-1 -8 19 3 -14 1;0 -1 -8 14 0 -5;0 0 -1 -7 5 3]/24;   
    case 4,
        A(1,:) = [1/3,-1/2,0,1/6,0,0,0];
        A(2,2:7) = [4/3,-1,0,1/6,0,0];
        A(3,3:7) = [7/3,-3/2,0,1/6,0];
        A(4,4:7)=[8/3,-3/2,0,1/6]; 
        A(5,5:7)=[7/3,-1,0];
        A(6,6:7)=[4/3,-1/2];
        A(7,7)=1/3; % right-upper is assigned
        A = sysMat(A);
        B(1,:) = [1/30,-7/120,1/60,1/120,0,0,0];
        B(2,:) = [11/40,-1/3,-3/20,1/5,1/120,0,0];
        B(3,:) = [11/60,11/60,-7/10,1/8,1/5,1/120,0];
        B(4,:) = [1/120,1/5,1/8,-2/3,1/8,1/5,1/120]; 
        B(5,:) = [0,1/120,1/5,-3/20,-7/10,11/60,11/60];
        B(6,:) = [0,0,1/120,1/5,-3/20,-1/3,11/40];
        B(7,:) = [0,0,0,1/120,1/60,-7/120,1/30]; % right-upper is assigned
        C(1,:) = [1/20,7/120,-1/10,-1/120,0,0,0];
        C(2,2:7) = [1/3,-11/60,-1/5,-1/120,0,0];
        C(3,3:7) = [37/60,-1/8,-1/5,-1/120,0];
        C(4,4:7) = [2/3,-1/8,-1/5,-1/120];
        C(5,5:7) = [37/60,11/60,-1/10];	
        C(6,6:7) = [1/3,7/120];
        C(7,7) = 1/20;
        C = sysMat(C);
        F(1,:) = [1/252,43/1680,1/84,1/5040,0,0,0];
        F(2,2:7) = [151/630,177/840,1/24,1/5040,0,0];
        F(3,3:7) = [599/1260,397/1680,1/24,1/5040,0];
        F(4,4:7) = [151/630,397/1680,1/42,1/5040];
        F(5,5:7) = [599/1260,177/840,1/84];
        F(6,6:7) = [151/630,43/1680];
        F(7,7) = 1/252;
        F = sysMat(F);
        H(1,:) = [-1/72,-1/80,1/40,1/720,0,0,0];
        H(2,:) = [-71/720,-2/9,29/120,7/90,1/720,0,0];
        H(3,:) = [-19/360,-177/360,-1/72,49/144,7/90,1/720,0];
        H(4,:) = [-1/720,-7/90,-49/144,0,49/144,7/90,1/720];
        H(5,:) = [0,-1/720,-7/90,-49/144,1/72,177/360,19/360];
        H(6,:) = [0,0,-1/120,-7/90,-29/120,2/9,71/720];
        H(7,:) = [0,0,0,-1/720,-1/40,1/80,1/72]; % right-upper is assigned    
        L = -[-3 -5 7 1 0 0 0;5 0 -14 8 1 0 0;-1 14 -3 -19 8 1 0;-1 -8 19 0 -19 8 1;0 -1 -8 19 3 -14 1;0 0 -1 -8 14 0 -5;0 0 0 -1 -7 5 3]/24;
    otherwise,  % greater than four
        A(1,1:4)=[1/3,-1/2,0,1/6];
        A(2,2:5)=[4/3,-1,0,1/6];
        A(3,3:6)=[7/3,-3/2,0,1/6];
        A(end,end:-1:end-3)=[1/3,-1/2,0,1/6];
        A(end-1,end-1:-1:end-4)=[4/3,-1,0,1/6];
        A(end-2,end-2:-1:end-5)=[7/3,-3/2,0,1/6]; 
        for I = 4 : Ndim-3
            A(I,I:I+3)=[8/3,-3/2,0,1/6];
        end
        A = sysMat(A);
        B(1,1:4) = [1/30,-7/120,1/60,1/120];
        B(2,1:5) = [11/40,-1/3,-3/20,1/5,1/120];
        B(3,1:6) = [11/60,11/60,-7/10,1/8,1/5,1/120];
        B(end,end:-1:end-3) = [1/30,-7/120,1/60,1/120];
        B(end-1,end:-1:end-4) = [11/40,-1/3,-3/20,1/5,1/120];
        B(end-2,end:-1:end-5) = [11/60,11/60,-7/10,1/8,1/5,1/120];
        for I = 4 : Ndim-3
            B(I,I:I+3)=[-2/3,1/8,1/5,1/120];
        end
        C(1,1:4) = [1/20,7/120,-1/10,-1/120];
        C(2,2:5) = [1/3,-11/60,-1/5,-1/120];
        C(3,3:6) = [37/60,-1/8,-1/5,-1/120];
        C(end,end:-1:end-3) = [1/20,7/120,-1/10,-1/120];
        C(end-1,end-1:-1:end-4) = [1/3,-11/60,-1/5,-1/120];
        C(end-2,end-2:-1:end-5) = [37/60,-1/8,-1/5,-1/120];
        for I = 4 : Ndim-3
            C(I,I:I+3)=[2/3,-1/8,-1/5,-1/120];
        end
        C = sysMat(C);
        F(1,1:4) = [1/252,43/1680,1/84,1/5040];
        F(2,2:5) = [151/630,177/840,1/420,1/5040];
        F(3,3:6) = [599/1260,397/1680,1/42,1/5040];
        F(end,end:-1:end-3) = [1/252,43/1680,1/84,1/5040];
        F(end-1,end-1:-1:end-4) = [151/630,177/840,1/420,1/5040];
        F(end-2,end-2:-1:end-5) = [599/1260,397/1680,1/42,1/5040];
        for I = 4 : Ndim-3
            F(I,I:I+3)=[151/315,397/1680,1/42,1/5040];
        end
        F = sysMat( F );
        H(1,1:4) = [-1/72,-1/80,1/40,1/720];
        H(2,1:5) = [-71/720,-2/9,87/360,7/90,1/720];
        H(3,1:6) = [-19/360,-127/360,-1/72,49/144,7/90,1/720];
        H(end,end:-1:end-3) = -[-1/72,-1/80,1/40,1/720];
        H(end-1,end:-1:end-4) = -[-71/720,-2/9,87/360,7/90,1/720];
        H(end-2,end:-1:end-5) = -[-19/360,-127/360,-1/72,49/144,7/90,1/720];
        for I = 4 : Ndim-3
            H(I,I-3:I+3)=[-1/720,-7/90,-49/144,0,49/144,7/90,1/720];
        end
        L(1,1:4) = [3,6,-7,-1];
        L(2,1:5) = [-5,0,14,-8,-1];
        L(3,1:6) = [1,-14,3,19,-8,-1];
        L(end,end:-1:end-3) = -[3,6,-7,-1];
        L(end-1,end:-1:end-4) = -[-5,0,14,-8,-1];
        L(end-2,end:-1:end-5) = -[1,-14,3,19,-8,-1];
        for I = 4 : Ndim-3
            L(I,I-3:I+3)=[1,8,19,0,19,-8,-1];
        end
end



function [Am] = sysMat(A)
dim=size(A,1);
Am = A;
for I = 4 : dim-3
    for J = 1 : I
       Am(I,J) = A(J,I);
   end
end   

⌨️ 快捷键说明

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