我正在通过Piegl和Tiller的 The NURBS Book 工作。对于全局插值算法,它们要求您提供两个实用程序来解决线性方程组:
LUDecomposition(A, q, sbw)
将q x q
系数矩阵与semibandwidthsbw
分解为下三角和上三角分量;为简单起见,我们假设A
是一个q x q
方阵,但是只使用一个只存储非零波段的实用程序。
ForwardBackward(A, q, sbw, rhs, sol)
执行前进/后退替换(参见[Press88]); rhs []是系统的右侧(Q_k的坐标),sol []是解向量(P_i的坐标)。
检查参考按88,我发现它是C 中的 Numerical Recipes。我应该能够在该书中重新编写算法以获得ForwardBackward
函数,但就LUDecomposition
而言,我在哪里可以找到适用于带有对角线条的矩阵的特殊情况的算法?
答案 0 :(得分:0)
ResponseEntity
为了解决,前子和后子。
function [u1,d1,l1] = decomt(u,d,l)
%length of diagonal
n=length(d);
u1=u;
d1 = d;
l1=l;
%perform LU decomp
d1(1) = d(1);
for i =2:n
l1(i-1) = l(i-1)/d1(i-1); %update lower triangle
d1(i)= d(i) - (l(i-1)/d1(i-1))*u(i-1); % update diagonal
end
end