comparison +sbp/higher_variable4.m @ 249:02423f9323c6 feature/beams

Started modifying operator files.
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 05 Sep 2016 16:38:41 +0200
parents c2ca9717db4d
children
comparison
equal deleted inserted replaced
248:81e0ead29431 249:02423f9323c6
5 %%% H (Normen) %%% 5 %%% H (Normen) %%%
6 %%% D1=H^(-1)Q (approx f?rsta derivatan) %%% 6 %%% D1=H^(-1)Q (approx f?rsta derivatan) %%%
7 %%% D2 (approx andra derivatan) %%% 7 %%% D2 (approx andra derivatan) %%%
8 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 8 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9 9
10 Hv = ones(m,1);
11 Hv(1:4) = [17/48 59/48 43/48 49/48];
12 Hv(m-3:m) = rot90(Hv(1:4),2);
13 Hv = h * Hv;
14 H = spdiag(Hv,0);
15 HI = spdiag(1./Hv,0);
10 16
11 %m=20; %problemstorlek 17 e_1 = sparse(m, 1);
12 %h=1/(m-1); 18 e_1(1) = 1;
13 %h=1; 19 e_m = rot90(e_1, 2);
14 20
15 c = ones(m,1); 21 S_1 = sparse(m, 1);
22 S_1(1:4) = [-0.11e2/0.6e1 3 -0.3e1/0.2e1 0.1e1/0.3e1]/h;
23 S_m = -rot90(S_1, 2);
24
25 S2_1 = sparse(m, 1);
26 S2_1(1:4) = [2 -5 4 -1;]/h^2;
27 S2_m = rot90(S2_1, 2);
28
29 S3_1 = sparse(m, 1);
30 S3_1(1:4) = [-1 3 -3 1;]/h^3;
31 S3_m = rot90(S3_1, 2);
16 32
17 33
18 H=diag(ones(m,1),0); 34 q_diags = [-2, -1, 0, 1, 2];
19 H(1:4,1:4)=diag([17/48 59/48 43/48 49/48]); 35 q_stencil = [-1/12, 8/12, 0, -8/12, 1/12];
20 H(m-3:m,m-3:m)=fliplr(flipud(diag([17/48 59/48 43/48 49/48]))); 36 Q = stripeMatrix(q_stencil, q_diags,m);
21 H=H*h;
22 HI=inv(H);
23 HI = sparse(HI);
24 37
38 Q_U = [
39 0 0.59e2/0.96e2 -0.1e1/0.12e2 -0.1e1/0.32e2;
40 -0.59e2/0.96e2 0 0.59e2/0.96e2 0;
41 0.1e1/0.12e2 -0.59e2/0.96e2 0 0.59e2/0.96e2;
42 0.1e1/0.32e2 0 -0.59e2/0.96e2 0;
43 ];
25 44
45 Q(1:4,1:4)=Q_U;
46 Q(m-3:m,m-3:m)=-rot90(Q_U, 2);
26 47
27 Q=(-1/12*diag(ones(m-2,1),2)+8/12*diag(ones(m-1,1),1)-8/12*diag(ones(m-1,1),-1)+1/12*diag(ones(m-2,1),-2));
28 Q_U = [0 0.59e2 / 0.96e2 -0.1e1 / 0.12e2 -0.1e1 / 0.32e2; -0.59e2 / 0.96e2 0 0.59e2 / 0.96e2 0; 0.1e1 / 0.12e2 -0.59e2 / 0.96e2 0 0.59e2 / 0.96e2; 0.1e1 / 0.32e2 0 -0.59e2 / 0.96e2 0;];
29 Q(1:4,1:4)=Q_U;
30 Q(m-3:m,m-3:m)=flipud( fliplr(-Q_U(1:4,1:4) ) );
31
32 e_1=zeros(m,1);e_1(1)=1;
33 e_m=zeros(m,1);e_m(m)=1;
34 48
35 D1=HI*(Q-1/2*e_1*e_1'+1/2*e_m*e_m') ; 49 D1=HI*(Q-1/2*e_1*e_1'+1/2*e_m*e_m') ;
36 50
37 M_U=[0.9e1 / 0.8e1 -0.59e2 / 0.48e2 0.1e1 / 0.12e2 0.1e1 / 0.48e2; -0.59e2 / 0.48e2 0.59e2 / 0.24e2 -0.59e2 / 0.48e2 0; 0.1e1 / 0.12e2 -0.59e2 / 0.48e2 0.55e2 / 0.24e2 -0.59e2 / 0.48e2; 0.1e1 / 0.48e2 0 -0.59e2 / 0.48e2 0.59e2 / 0.24e2;]; 51 m_diags = [-2, -1, 0, 1, 2];
38 M=-(-1/12*diag(ones(m-2,1),2)+16/12*diag(ones(m-1,1),1)+16/12*diag(ones(m-1,1),-1)-1/12*diag(ones(m-2,1),-2)-30/12*diag(ones(m,1),0)); 52 m_stencil = [-1/12, 16/12, -30/12, -16/12, -1/12];
53
54 M_U=[
55 0.9e1 / 0.8e1 -0.59e2 / 0.48e2 0.1e1 / 0.12e2 0.1e1 / 0.48e2;
56 -0.59e2 / 0.48e2 0.59e2 / 0.24e2 -0.59e2 / 0.48e2 0;
57 0.1e1 / 0.12e2 -0.59e2 / 0.48e2 0.55e2 / 0.24e2 -0.59e2 / 0.48e2;
58 0.1e1 / 0.48e2 0 -0.59e2 / 0.48e2 0.59e2 / 0.24e2;
59 ];
39 60
40 M(1:4,1:4)=M_U; 61 M(1:4,1:4)=M_U;
41 62 M(m-3:m,m-3:m)=rot90(M_U, 2);
42 M(m-3:m,m-3:m)=flipud( fliplr( M_U ) );
43 M=M/h; 63 M=M/h;
44
45 S_U=[-0.11e2 / 0.6e1 3 -0.3e1 / 0.2e1 0.1e1 / 0.3e1;]/h;
46 S_1=zeros(1,m);
47 S_1(1:4)=S_U;
48 S_m=zeros(1,m);
49 S_m(m-3:m)=fliplr(-S_U);
50 S_1 = S_1';
51 S_m = S_m';
52
53
54 M=sparse(m,m);
55 e_1 = sparse(e_1);
56 e_m = sparse(e_m);
57 S_1 = sparse(S_1);
58 S_m = sparse(S_m);
59 64
60 65
61 scheme_width = 5; 66 scheme_width = 5;
62 scheme_radius = (scheme_width-1)/2; 67 scheme_radius = (scheme_width-1)/2;
63 r = (1+scheme_radius):(m-scheme_radius); 68 r = (1+scheme_radius):(m-scheme_radius);
114 M=M/h; 119 M=M/h;
115 D2=HI*(-M-c(1)*e_1*S_1'+c(m)*e_m*S_m'); 120 D2=HI*(-M-c(1)*e_1*S_1'+c(m)*e_m*S_m');
116 end 121 end
117 D2 = @D2_fun; 122 D2 = @D2_fun;
118 123
119
120 S2_U=[2 -5 4 -1;]/h^2;
121 S2_1=zeros(1,m);
122 S2_1(1:4)=S2_U;
123 S2_m=zeros(1,m);
124 S2_m(m-3:m)=fliplr(S2_U);
125 S2_1 = S2_1';
126 S2_m = S2_m';
127
128 m3=-1/6;m2=2;m1=-13/2;m0=28/3; 124 m3=-1/6;m2=2;m1=-13/2;m0=28/3;
129 M4=m3*(diag(ones(m-3,1),3)+diag(ones(m-3,1),-3))+m2*(diag(ones(m-2,1),2)+diag(ones(m-2,1),-2))+m1*(diag(ones(m-1,1),1)+diag(ones(m-1,1),-1))+m0*diag(ones(m,1),0); 125 M4=m3*(diag(ones(m-3,1),3)+diag(ones(m-3,1),-3))+m2*(diag(ones(m-2,1),2)+diag(ones(m-2,1),-2))+m1*(diag(ones(m-1,1),1)+diag(ones(m-1,1),-1))+m0*diag(ones(m,1),0);
130 126
131 %M4=(-1/6*(diag(ones(m-3,1),3)+diag(ones(m-3,1),-3) ) + 2*(diag(ones(m-2,1),2)+diag(ones(m-2,1),-2)) -13/2*(diag(ones(m-1,1),1)+diag(ones(m-1,1),-1)) + 28/3*diag(ones(m,1),0)); 127 %M4=(-1/6*(diag(ones(m-3,1),3)+diag(ones(m-3,1),-3) ) + 2*(diag(ones(m-2,1),2)+diag(ones(m-2,1),-2)) -13/2*(diag(ones(m-1,1),1)+diag(ones(m-1,1),-1)) + 28/3*diag(ones(m,1),0));
132 128
135 M4(1:6,1:6)=M4_U; 131 M4(1:6,1:6)=M4_U;
136 132
137 M4(m-5:m,m-5:m)=flipud( fliplr( M4_U ) ); 133 M4(m-5:m,m-5:m)=flipud( fliplr( M4_U ) );
138 M4=M4/h^3; 134 M4=M4/h^3;
139 135
140 S3_U=[-1 3 -3 1;]/h^3;
141 S3_1=zeros(1,m);
142 S3_1(1:4)=S3_U;
143 S3_m=zeros(1,m);
144 S3_m(m-3:m)=fliplr(-S3_U);
145 S3_1 = S3_1';
146 S3_m = S3_m';
147 136
148 D4=HI*(M4-e_1*S3_1'+e_m*S3_m' + S_1*S2_1'-S_m*S2_m'); 137 D4=HI*(M4-e_1*S3_1'+e_m*S3_m' + S_1*S2_1'-S_m*S2_m');
149 138
150 139
151 140