Rozwiązywanie układów równań liniowych algebraicznych


Rozwiązywanie układów równań liniowych algebraicznych

0x08 graphic
0x08 graphic

a) c)

0x08 graphic
0x08 graphic
b) d)

Metoda Cramera

a)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[11

12

13

14];

A=[1 2 3 4; 2 3 4 1; 3 4 1 2; 4 1 2 3];

W=det(A);

Wx=det([11 2 3 4; 12 3 4 1; 13 4 1 2; 14 1 2 3]);

Wy=det([1 11 3 4; 2 12 4 1; 3 13 1 2; 4 14 2 3]);

Wz=det([1 2 11 4; 2 3 12 1; 3 4 13 2; 4 1 14 3]);

Ww=det([1 2 3 11; 2 3 4 12; 3 4 1 13; 4 1 2 14]);

xA=[Wx/W

Wy/W

Wz/W

Ww/W];

xA

toc

wynik:

xA =

2.000000000000000e+00

1.000000000000000e+00

1.000000000000000e+00

9.999999999999998e-01

Elapsed time is 0.010930 seconds.

b)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[1

2

-3

-6];

A=[2 -1 1 -1; 2 -1 0 -3; 3 0 -1 1; 2 2 -2 5];

W=det(A);

Wx=det([1 -1 1 -1; 2 -1 0 -3; -3 0 -1 1; -6 2 -2 5]);

Wy=det([2 1 1 -1 ; 2 2 0 -3 ; 3 0 -3 1 ; 2 -6 -2 5]);

Wz=det([2 -1 1 -1; 2 -1 2 -3; 3 0 -3 1 ; 2 2 -6 5]);

Ww=det([2 -1 1 1 ; 2 -1 0 2 ; 3 0 -1 -3; 2 2 -2 6]);

xB=[Wx/W

Wy/W

Wz/W

Ww/W];

xB

toc

wynik:

xB =

-1.973729821555835e-16

-9.555555555555559e+00

1.666666666666667e+00

-5.333333333333334e+00

Elapsed time is 0.010858 seconds.

c)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[7

-2

10

0];

A=[2 2 -1 1; 1 -1 1 -1; 1 1 1 1; 4 3 -2 -1];

W=det(A);

Wx=det([7 2 -1 1; -2 -1 1 -1; 10 1 1 1; 0 3 -2 -1]);

Wy=det([2 7 -1 1; 1 -2 1 -1; 1 10 1 1; 4 0 -2 -1]);

Wz=det([2 2 7 1; 1 -1 -2 -1; 1 1 10 1; 4 3 0 -1]);

Ww=det([2 2 -1 7; 1 -1 1 -2; 1 1 1 10; 4 3 -2 0]);

xC=[Wx/W

Wy/W

Wz/W

Ww/W];

xC

toc

wynik:

xC =

1.000000000000001e+00

1.999999999999999e+00

3.000000000000000e+00

4.000000000000000e+00

Elapsed time is 0.010612 seconds.

d)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[3

0

-2

-2];

A=[3 1 1 2; 3 2 3 5; 6 5 1 5; 3 2 3 7];

W=det(A);

Wx=det([3 1 1 2; 0 2 3 5; -2 5 1 5; -2 2 3 7]);

Wy=det([3 3 1 2; 3 0 3 5; 6 -2 1 5; 3 -2 3 7]);

Wz=det([3 1 3 2; 3 2 0 5; 6 5 -2 5; 3 2 -2 7]);

Ww=det([3 1 1 3; 3 2 3 0; 6 5 1 -2; 3 2 3 -2]);

xD=[Wx/W

Wy/W

Wz/W

Ww/W];

xD

toc

wynik:

xD =

2.000000000000000e+00

-1.999999999999999e+00

9.999999999999997e-01

-9.999999999999997e-01

Elapsed time is 0.010689 seconds.

Metoda dzielenia lewostronnego A\b

a)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[11

12

13

14];

A=[1 2 3 4; 2 3 4 1; 3 4 1 2; 4 1 2 3];

xA=A\b;

xA

toc

wynik:

xA =

2.000000000000000e+00

1.000000000000000e+00

1.000000000000000e+00

1.000000000000000e+00

Elapsed time is 0.009719 seconds.

b)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[1

2

-3

-6];

A=[2 -1 1 -1; 2 -1 0 -3; 3 0 -1 1; 2 2 -2 5];

xB=A\b;

xB

toc

wynik:

xB =

7.401486830834377e-17

2.000000000000000e+00

1.666666666666667e+00

-1.333333333333333e+00

Elapsed time is 0.085826 seconds.

c)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[7

-2

10

0];

A=[2 2 -1 1; 1 -1 1 -1; 1 1 1 1; 4 3 -2 -1];

xC=A\b;

xC

toc

wynik:

xC =

1

2

3

4

Elapsed time is 0.009957 seconds.

d)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[3

0

-2

-2];

A=[3 1 1 2; 3 2 3 5; 6 5 1 5; 3 2 3 7];

xD=A\b;

xD

toc

wynik:

xD =

2.000000000000000e+00

-2.000000000000000e+00

9.999999999999994e-01

-9.999999999999997e-01

Elapsed time is 0.009966 seconds.

Metoda inv(A)*b

a)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[11

12

13

14];

A=[1 2 3 4; 2 3 4 1; 3 4 1 2; 4 1 2 3];

xA=inv(A)*b;

xA

toc

wynik:

xA =

1.999999999999999e+00

1.000000000000000e+00

9.999999999999999e-01

1.000000000000000e+00

Elapsed time is 0.009778 seconds.

b)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[1

2

-3

-6];

A=[2 -1 1 -1; 2 -1 0 -3; 3 0 -1 1; 2 2 -2 5];

xB=inv(A)*b;

xB

toc

wynik:

xB =

0

2.000000000000000e+00

1.666666666666667e+00

-1.333333333333333e+00

Elapsed time is 0.010263 seconds.

c)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[7

-2

10

0];

A=[2 2 -1 1; 1 -1 1 -1; 1 1 1 1; 4 3 -2 -1];

xC=inv(A)*b;

xC

toc

wynik:

xC =

1.000000000000000e+00

2.000000000000000e+00

3.000000000000001e+00

4.000000000000000e+00

Elapsed time is 0.009957 seconds.

d)

program:

%n - licznik wierszy

%m - licznik kolumn

tic

clear all;

clc;

format long e

b=[3

0

-2

-2];

A=[3 1 1 2; 3 2 3 5; 6 5 1 5; 3 2 3 7];

xD=inv(A)*b;

xD

toc

wynik:

xD =

2.000000000000000e+00

-2.000000000000000e+00

9.999999999999998e-01

-9.999999999999998e-01

Elapsed time is 0.010038 seconds.

Metoda eliminacji Gaussa

a)

program:

tic

clear all;

clc;

format long e

b=[ 11

12

13

14];

A=[1 2 3 4; 2 3 4 1; 3 4 1 2; 4 1 2 3];

[nb mb]= size (b);

[n m]= size (A);

L= eye (n);

U= [A b];

for k = 1 :m -1

L(k+1:n,k)=U(k+1:n,k)/U(k,k);

U(k+1:n,:)=U(k+1:n,:)-L(k+1:n,k)*U(k,:);

end

L2=eye(n);

for k = m : -1 : 2

L2(1:k-1,k)=U(1:k-1,k)/U(k,k);

U(1:k-1,:)=U(1:k-1,:)-L2(1:k-1,k)*U(k,:);

end

U1 = U(:,1:m);

B=U(:,m+1:m+mb);

for k=1 : n

x(k,:)=B(k,:)/U1(k,k);

end

x

toc

wynik:

x =

2

1

1

1

Elapsed time is 0.014379 seconds.

b)

program:

tic

clear all;

clc;

format long e

b=[ 1

2

-3

-6];

A=[2 -1 1 -1; 2 -1 0 -3; 3 0 -1 1; 2 2 -2 5];

[nb mb]= size (b);

[n m]= size (A);

L= eye (n);

U= [A b];

for k = 1 :m -1

L(k+1:n,k)=U(k+1:n,k)/U(k,k);

U(k+1:n,:)=U(k+1:n,:)-L(k+1:n,k)*U(k,:);

end

L2=eye(n);

for k = m : -1 : 2

L2(1:k-1,k)=U(1:k-1,k)/U(k,k);

U(1:k-1,:)=U(1:k-1,:)-L2(1:k-1,k)*U(k,:);

end

U1 = U(:,1:m);

B=U(:,m+1:m+mb);

for k=1 : n

x(k,:)=B(k,:)/U1(k,k);

end

x

toc

wynik:

x =

NaN

NaN

NaN

NaN

Elapsed time is 0.014151 seconds.

c)

program:

tic

clear all

clc

format long e

b=[7

-2

10

0];

A=[2 2 -1 1;1 -1 1 -1;1 1 1 1;4 3 -2 -1];

[nb mb] = size(b);

[n m] = size(A);

L=eye(n);

U=[A b];

for k = 1 : m-1

L(k+1:n,k) = U(k+1:n,k)/U(k,k);

U(k+1:n,:) = U(k+1:n,:)-L(k+1:n,k)*U(k,:);

end

L2 = eye(n);

for k=m : -1 : 2

L2(1:k-1,k) = U(1:k-1,k)/U(k,k);

U(1:k-1,:) = U(1:k-1,:)-L2(1:k-1,k)*U(k,:);

end

U1 = U(:,1:m);

B = U(:,m+1:m+mb);

for k = 1 : n

x(k,:) = B(k,:)/U1(k,k);

end

x

toc

wynik:

x =

1

2

3

4

Elapsed time is 0.013919 seconds.

d)

program:

tic

clear all

clc

format long e

b=[3

0

-2

-2];

A=[3 1 1 2;3 2 3 5;6 5 1 5;3 2 3 7];

[nb mb] = size(b);

[n m] = size(A);

L=eye(n);

U=[A b];

for k = 1 : m-1

L(k+1:n,k) = U(k+1:n,k)/U(k,k);

U(k+1:n,:) = U(k+1:n,:)-L(k+1:n,k)*U(k,:);

end

L2 = eye(n);

for k=m : -1 : 2

L2(1:k-1,k) = U(1:k-1,k)/U(k,k);

U(1:k-1,:) = U(1:k-1,:)-L2(1:k-1,k)*U(k,:);

end

U1 = U(:,1:m);

B = U(:,m+1:m+mb);

for k = 1 : n

x(k,:) = B(k,:)/U1(k,k);

end

x

toc

wynik:

x =

2

-2

1

-1

Elapsed time is 0.015360 seconds.

Wnioski

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic



Wyszukiwarka

Podobne podstrony:
Metody rozwiązywania układów równań liniowych
Rozwiazywanie ukladow rownan liniowych
Rozwiązywanie układów równań liniowych
rozwiązywanie układów równań liniowych spr, Politechnika Lubelska, Studia, Studia, sem III, sprawka,
sciaga rozwiazywanie ukladow rownan liniowych za pomoca wzorow cramera, Matematyka
Rozwiazywanie ukladów rownan liniowych W11
Metody rozwiązywania układów równań liniowych
Rozdzial 05 Rozwiazywanie ukladow rownan liniowych
100 ukladow rownan liniowych z pelnymi rozwiazaniami krok po kroku (2)
100 układów równań liniowych z pełnymi rozwiązaniami krok po kroku
Rozwiązywanie układów równań
Rozwiązywanie układów równań metodą wyznaczników
4 Metody numeryczne rozwiązywania układów równań2
M[1] 7 Rozwiazywanie ukladow rownan typu Cramera
matematyka, Roz uk równań wyznaczników m, Rozwiązywanie układów równań metodą wyznaczników
Macierzowe metody rozwiązywania układów równań, t2d

więcej podobnych podstron