用matlab求解线性系统的方法
我有一个线性系统Ax=b,它由自然样条曲线创建,如下所示: 在哪里 matlab中用于求解系统的代码如下:用matlab求解线性系统的方法,matlab,linear-algebra,numerical,spline,Matlab,Linear Algebra,Numerical,Spline,我有一个线性系统Ax=b,它由自然样条曲线创建,如下所示: 在哪里 matlab中用于求解系统的代码如下: clear; clc; x = [...] ; a = [...]; x0 = ...; n = length(x) - 1 ; for i = 0 : (n-1) h(i+1) = x(i+2) - x(i+1) ; end b= zeros( n+1 , 1 ) ; for i =2: n b(i,1) = 3 *(a(i+1)-a(i))/h(
clear;
clc;
x = [...] ;
a = [...];
x0 = ...;
n = length(x) - 1 ;
for i = 0 : (n-1)
h(i+1) = x(i+2) - x(i+1) ;
end
b= zeros( n+1 , 1 ) ;
for i =2: n
b(i,1) = 3 *(a(i+1)-a(i))/h(i) - 3/h(i-1)*(a(i) - a(i-1) ) ;
end
%linear system solution.
l(1) =0 ; m(1) = 0 ; z(1) = 0 ;
for i =1:(n-1)
l(i+1) = 2*( x(i+2) - x(i) ) - h(i)* m(i) ;
m(i+1) = h(i+1)/l(i+1);
z(i+1) = ( b(i+1) - h(i)*z(i) ) / l ( i+1) ;
end
l(n+1) =1;
z(n+1) = 0 ;
c(n+1) = 0 ;
for j = ( n-1) : (-1) : 0
c(j+1) = z(j+1) - m(j+1)*c(j+2) ;
end
但我不明白用哪种方法来解线性方程组。
如果我不得不猜测的话,我会说使用了LU方法,对三对角矩阵进行了调整,但我仍然找不到与代码的联系
任何帮助都将不胜感激 系数看起来有点奇怪(特别是
l
方程中的2
),但它看起来像一个特殊的公式,其中:
代码似乎与通用算法不匹配,因为解决方案是使用组成对角线的向量,而不是对角线本身,没有明显的内存预分配。因此,我不能说这种方法是否比一般的方法“更好”。要求解线性系统
A*x=b
,通常只需使用x=A\b
。要构建矩阵A
,请查找diag
命令。你可以比较x
和你的解c
,如果它是正确的话。它使用三角矩阵解算器。参见《数字配方书》第115页()