пояснение за матрици, вектори и вградената функция LinearSolve

A=(({{23, -1, 0}, {1, -38, 0.2}, {0, -2.1, 103}}))
b={41,-3.8,1};

A

A//MatrixForm

LinearSolve[A,b]

A[[1,1]]

A[[1,1]]

A[[2,3]]

A[[2]]

((A[[2]])^2)

((-A[[2]])/(A[[2,2]]))

Length[A]

Length[b]

генериране на матрицата C и вектора d на еквивалентата система Ax=b <=> x = Cx+d

A=(({{23, -1, 0}, {1, -38, 0.2}, {0, -2.1, 103}}));
b={41,-3.8,1};
n=Length[A];
(* инициализиране на празни матрицата C и вектора d *)
CC=(({{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}));
d={0,0,0};
For[i=1,i≤n,i++,
CC[[i]]=((-A[[i]])/(A[[i,i]]));
CC[[i,i]]=0;
d[[i]] = ((b[[i]])/(A[[i,i]]))
]
CC//MatrixForm
d//MatrixForm

проверка за сходимост:

Norm[CC]

итерационен процес:

избираме произволно начално приближение:

x0={23000,-4*(10^6),689};
Print["k = ",0, " (x^((0))) = ",x0]
For[k=1,k≤30,k++,
x1 = CC.x0+d;
x0=x1;
Print["k = ",k, " (x^((k))) = ",x0]
]

избираме нулево начално приближение:

x0={0,0,0};
Print["k = ",0, " (x^((0))) = ",x0]
For[k=1,k≤5,k++,
x1 = CC.x0+d;
x0=x1;
Print["k = ",k, " (x^((k))) = ",x0]
]

итерационен процес, включвайки оценка на грешката:

x0={0,0,0};
Print["k = ",0, " (x^((0))) = ",x0]
For[k=1,k≤5,k++,
x1 = CC.x0+d;
eps = Norm[x1-x0];
x0=x1;
Print["k = ",k, " (x^((k))) = ",x0, " (e^((k))) = ",eps]
]

x0={0,0,0};
Print["k = ",0, " (x^((0))) = ",x0];
prec = (10^(-10));eps = 1;
For[k=1,eps>prec,k++,
x1 = CC.x0+d;
eps = Norm[x1-x0];
x0=x1;
Print["k = ",k, " (x^((k))) = ",x0, " (e^((k))) = ",eps]
]

x0={0,0,0};prec = (10^(-10));
nC = Norm[CC]; nx0 = Norm[x0]; nd = Norm[d];
k=.
Reduce[(nC^k)(nx0+(nd/(1-nC)))≤ prec,k]

%//N

((Log[(prec/(nx0+(nd/(1-nC))))])/(Log[nC]))