dan@0
|
1 % solve multiple 3rd degree linear systems at once - no pivoting!
|
dan@0
|
2 function dg3 = lin_solve_dgr_3(A,b,R)
|
dan@0
|
3 nrm = ...
|
dan@0
|
4 + A(1,3,:) .* A(2,2,:) .* A(3,1,:) ...
|
dan@0
|
5 - A(1,3,:) .* A(2,1,:) .* A(3,2,:) ...
|
dan@0
|
6 + A(1,2,:) .* A(2,1,:) .* A(3,3,:) ...
|
dan@0
|
7 - A(1,2,:) .* A(2,3,:) .* A(3,1,:) ...
|
dan@0
|
8 + A(1,1,:) .* A(2,3,:) .* A(3,2,:) ...
|
dan@0
|
9 - A(1,1,:) .* A(2,2,:) .* A(3,3,:);
|
dan@0
|
10 dg3 = zeros(3,R);
|
dan@0
|
11 dg3(1,:) = -(...
|
dan@0
|
12 +b(3,1,:) .* ( A(1,2,:) .* A(2,3,:) - A(1,3,:) .* A(2,2,:) ) ...
|
dan@0
|
13 -b(2,1,:) .* ( A(1,2,:) .* A(3,3,:) - A(1,3,:) .* A(3,2,:) ) ...
|
dan@0
|
14 +b(1,1,:) .* ( A(2,2,:) .* A(3,3,:) - A(2,3,:) .* A(3,2,:) ) ...
|
dan@0
|
15 ) ./ nrm;
|
dan@0
|
16 dg3(2,:) = (...
|
dan@0
|
17 +b(3,1,:) .* ( A(1,1,:) .* A(2,3,:) - A(1,3,:) .* A(2,1,:) ) ...
|
dan@0
|
18 -b(2,1,:) .* ( A(1,1,:) .* A(3,3,:) - A(1,3,:) .* A(3,1,:) ) ...
|
dan@0
|
19 +b(1,1,:) .* ( A(2,1,:) .* A(3,3,:) - A(2,3,:) .* A(3,1,:) ) ...
|
dan@0
|
20 ) ./ nrm;
|
dan@0
|
21 dg3(3,:) = -(...
|
dan@0
|
22 +b(3,1,:) .* ( A(1,1,:) .* A(2,2,:) - A(1,2,:) .* A(2,1,:) ) ...
|
dan@0
|
23 -b(2,1,:) .* ( A(1,1,:) .* A(3,2,:) - A(1,2,:) .* A(3,1,:) ) ...
|
dan@0
|
24 +b(1,1,:) .* ( A(2,1,:) .* A(3,2,:) - A(2,2,:) .* A(3,1,:) ) ...
|
dan@0
|
25 ) ./ nrm;
|
dan@0
|
26 end |