w09 b


> restart:
Metody ścisłe rozwiązywania ukadów równań liniowych
Generowanie liniowych równań niejednorodnych
20x1 + 4x2 - 3x3 =19
- 3x1 + 40x2 + 2x3 = 83
4x1 + 3x2 + 20x3 = 70
1. Ręcznie
> r1:=20*x[1]+4*x[2]-3*x[3]=19;
r1 := 20 x1 + 4 x2 - 3 x3 = 19
> r2:=-3*x[1]+40*x[2]+2*x[3]=83;
r2 := -3 x1 + 40 x2 + 2 x3 = 83
> r3:=4*x[1]+3*x[2]+20*x[3]=70;
r3 := 4 x1 + 3 x2 + 20 x3 = 70
2. Za pomocą list uogólnionych
> n:=3;
n := 3
> A:=array(1..n,1..n,[[20,4,-3],[-3,40,2],[4,3,20]]);
îÅ‚20 4 -3Å‚Å‚
ïÅ‚ śł
ïÅ‚ śł
A := ïÅ‚ -3 40 2śł
ïÅ‚ śł
ðÅ‚ 4 3 20ûÅ‚
> b:=array(1..n,[19,83,70]);
b := [19, 83, 70 ]
> for i to n do r||i:=add(A[i,j]*x[j],j=1..n)=b[i]; end do;
r1 := 20 x1 + 4 x2 - 3 x3 = 19
r2 := -3 x1 + 40 x2 + 2 x3 = 83
r3 := 4 x1 + 3 x2 + 20 x3 = 70
3. Za pomocÄ… macierzy
> A:=Matrix([[20,4,-3],[-3,40,2],[4,3,20]]);
îÅ‚20 4 -3Å‚Å‚
ïÅ‚ śł
ïÅ‚ śł
A := ïÅ‚ -3 40 2śł
ïÅ‚ śł
ðÅ‚ 4 3 20ûÅ‚
> b:=Vector([19,83,70]);
îÅ‚ 19Å‚Å‚
ïÅ‚ śł
ïÅ‚ śł
b := ïÅ‚ 83śł
ïÅ‚ śł
ðÅ‚ 70ûÅ‚
> X:=Vector(n,symbol=x);
îÅ‚ x1 Å‚Å‚
ïÅ‚ śł
X := ïÅ‚ x2 śł
ïÅ‚ śł
ïÅ‚ śł
ïÅ‚ śł
x3
ðÅ‚ ûÅ‚
> for i to n do r||i:=A[i,1..n].X=b[i] end do;
r1 := 20 x1 + 4 x2 - 3 x3 = 19
r2 := -3 x1 + 40 x2 + 2 x3 = 83
r3 := 4 x1 + 3 x2 + 20 x3 = 70
4 . Za pomocÄ… komendy GenerateEquations
> with(LinearAlgebra):
> row:=GenerateEquations(A,[seq(x[i],i=1..n)],b); # lista równań
row := [20 x1 + 4 x2 - 3 x3 = 19, -3 x1 + 40 x2 + 2 x3 = 83, 4 x1 + 3 x2 + 20 x3 = 70 ]
> for i to n do r||i:=row[i]; end do;
r1 := 20 x1 + 4 x2 - 3 x3 = 19
r2 := -3 x1 + 40 x2 + 2 x3 = 83
r3 := 4 x1 + 3 x2 + 20 x3 = 70
>
Metody rozwiÄ…zywania
Metoda Gaussa
A x = b
> A0:=Array([[20,4,-3],[-3,40,2],[4,3,20]]);
îÅ‚20 4 -3Å‚Å‚
ïÅ‚ śł
ïÅ‚ śł
A0 := ïÅ‚ -3 40 2śł
ïÅ‚ śł
ðÅ‚ 4 3 20ûÅ‚
> b0:=Array([19,83,70]);
b0 := [19, 83, 70 ]
ai(k -1)
,k
(
ai(k ) = ai(k -1) -akk -1) k =1,2,...,n -1
j j
(
akk -1) , j
, k
i = k +1... n
ai(k -1)
,k
(
j = k... n
bi(k ) = bi(k -1) -bkk -1)
(
akk -1)
, k
> for k to n-1 do
for i from k+1 to n do
for j from k+1 to n do
A||(k)[i,j]:=A||(k-1)[i,j]-A||(k-1)[i,k]/A||(k-1)[k,k]*A||(k-1)[
k,j];
b||(k)[i]:=b||(k-1)[i]-A||(k-1)[i,k]/A||(k-1)[k,k]*b||(k-1)[k];
end do:
end do:
end do:
n
ëÅ‚öÅ‚
1
(i-1)
xi =- ai(i-1)xj ÷Å‚, i = n,n -1, ...1
"
(
aiii-1) ìÅ‚bi j
j=i+1
íÅ‚Å‚Å‚
> for i from n by -1 to 1 do
x[i]:=1/A||(i-1)[i,i]*(b||(i-1)[i]-add(A||(i-1)[i,j]*x[j],j=i+1.
.n)):
end do:
> seq(x[i],i=1..n);
1, 2, 3
> x:='x';
x := x
Metoda Jordana
> r1;r2;r3;
20 x1 + 4 x2 - 3 x3 = 19
-3 x1 + 40 x2 + 2 x3 = 83
4 x1 + 3 x2 + 20 x3 = 70
> coeff(lhs(r||1),x[1]);
20
> for i to n do
for j to n do
r||i:=r||i/coeff(lhs(r||i),x[i]):
if j<>i then
r||j:=r||j-coeff(lhs(r||j),x[i])*r||i:
end if;
end do;
end do;
> for i to n do r||i end do;
x1 = 1
x2 = 2
x3 = 3
> x:='x':
Rozwiązanie za pomoca wzorów Cramera
> with(LinearAlgebra):
> A,b;
îÅ‚20 4 -3Å‚Å‚ îÅ‚ 19Å‚Å‚
ïÅ‚ śł ïÅ‚ śł
ïÅ‚ -3 40 2śł, 83śł
śł ïÅ‚ śł
ïÅ‚ ïÅ‚
ïÅ‚ śł ïÅ‚ śł
ðÅ‚ 4 3 20ûÅ‚ ðÅ‚ 70ûÅ‚
> Ap:=;
îÅ‚20 4 -3 19Å‚Å‚
ïÅ‚ śł
ïÅ‚ śł
Ap := ïÅ‚ -3 40 2 83śł
ïÅ‚ śł
ðÅ‚ 4 3 20 70ûÅ‚
> W:=Determinant(A);
W := 16659
> for i to n do
A||i:=ColumnOperation(Ap,[i,n+1]):
x[i]:=Determinant(A||i[1..n,1..n])/W:
end do:
> for i to n do x[i] end do;
1
2
3
> x:='x':
>
RozwiÄ…zanie za pomocÄ… macierzy odwrotnej
> x:=A^(-1).b;
îÅ‚ 1Å‚Å‚
ïÅ‚ śł
ïÅ‚ śł
x := ïÅ‚ 2śł
ïÅ‚ śł
ðÅ‚ 3ûÅ‚
> x:='x':
RozwiÄ…zanie za pomocÄ… komendy solve
> r1:=20*x[1]+4*x[2]-3*x[3]=19;
r2:=-3*x[1]+40*x[2]+2*x[3]=83;
r3:=4*x[1]+3*x[2]+20*x[3]=70;
r1 := 20 x1 + 4 x2 - 3 x3 = 19
r2 := -3 x1 + 40 x2 + 2 x3 = 83
r3 := 4 x1 + 3 x2 + 20 x3 = 70
> roz:=solve({r||(1..n)},{seq(x[i],i=1..n)});
roz := { x3 = 3, x1 = 1, x2 = 2 }
RozwiÄ…zanie za pomocÄ… komendy LinearSolve
> x:=LinearSolve(A,b);
îÅ‚ 1Å‚Å‚
ïÅ‚ śł
ïÅ‚ śł
x := ïÅ‚ 2śł
ïÅ‚ śł
ðÅ‚ 3ûÅ‚
>
>


Wyszukiwarka

Podobne podstrony:
c cxx w09
W09
W09 IL aproksymacja cz 2(1)
anl1 w09 lato2009
W09 Interfejsy komunikacji bezprzewodowej irDA, Bluetooth
PodstawyProgramowania W09
AM23 w09 Całki podwójne
m1 w09
MPiS30 W09 Podstawy statystyki matematycznej
bal w09
W09
Multimedia W09
W09 produkcja III
W09 sprzegla
WM w09 2 w10 Energia okno
W09 Miedź i stopy miedzi

więcej podobnych podstron