Skocz do zawartości
neoziom

Zadanie Z Pascala

Rekomendowane odpowiedzi

Witam !!

 

Szukałem na tym forum rozwiązania mojeo problemu i niestety nie znalazłem :cry: .

Mianowicie mam do napisania program w pascalu który będzie rozwiązywał czteroliniowy układ równań metodą wyznacznikowa. Jeżeli ktoś wie jak stworzyć taki program, prosze o pomoc B)

 

Z góry dziękuję :wink:

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Z napisaniem programu bym sobie dał rade tylko nie wiem jak rozwiązać taki układ równań

 

Oki to jak mam np.

 

a1X + b1Y = c1

a2X + b2Y = c2

a3X + b3Y = c3

a4X + b4Y = c4

 

To mi daje :

 

[ a1 b1] [c1 b1] [a1 c1]

[ a2 b2] [c2 b2] [a2 c2]

[ a3 b3] [c3 b3] [a3 c3]

[ a4 b4] [c4 b4] [a4 c4]

 

I teraz nie wiem jak jest z tymi wyznacznikami czyli wyznacznik główny ( WG ) ,Wyznacznik x-owy ( Wx ) i Wyznacznik y-owy ( Wy ). Nie wiem co z czym pomnożyć i co od czego odjąć.

 

Bardzo prosze o pomoc, jesteście moją ostatnią deską ratunku .

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Z napisaniem programu bym sobie dał rade tylko nie wiem jak rozwiązać taki układ równań

Oki to jak mam np.

a1X + b1Y = c1

a2X + b2Y = c2

a3X + b3Y = c3

a4X + b4Y = c4

Ten ukłąd równań jest zapisaby nieprawidłowo - jak ma się 2 niewiadome i 4 równania to cos jest nie tak :lol: ?

to chyba powinno wyglądać tak :

a11 X1 +a12 X2+a13 X3 + a14 X4 = b1

a21 X1 +a22 X2+a23 X3 + a24 X4 = b2

a31 X1 +a32 X2+a33 X3 + a34 X4 = b3

a41 X1 +a42 X2+a43 X3 + a44 X4 = b4

 

Układ równań n z n niewiadomymi rozwiązuje się za pomocą wyznaczników tak samo niezależnie czy n=2,3,4 itp. . Ale róznie liczy się wyznaczniki :

Obliczamy wyznacznik główny dla macierzy 4x4:

W:

|a11 a12 a13 a14 |

|a21 a22 a23 a24 |

|a31 a32 a33 a34 |

|a41 a42 a43 a44 |

 

i taki wyznacznik obliczamy korzystając z własności wyznaczników (działa ona także dla wyznacznika macierzy 3x3 :)):

wybieramy kolumne lub wiersz (ja wybrałem 1 wiersz)

 

W:

|a11 a12 a13 a14 |

|a21 a22 a23 a24 |

|a31 a32 a33 a34 |

|a41 a42 a43 a44 |

 

Teraz obliczamy sume n wyznaczników stopnia (n-1) dla kazdego z elementów tego wiersz

najpierw dla a11 nowy wyznacznik liczymy z macierzy powstałej z wykreslenia elementów które są w tej samej kolumnie lub wierszu co aij (jesli suma indeksów kolumny i wiersza elementu aij jest nieparzysta to mnożymy przez -1):

 

W(a11):

|a11 a12 a13 a14 |

|a21 a22 a23 a24 | |a22 a23 a24 |

|a31 a32 a33 a34 |-> |a32 a33 a34 |*a11

|a41 a42 a43 a44 | |a42 a43 a44 |

 

teraz:

W(a12)

|a11 a12 a13 a14 |

|a21 a22 a23 a24 | |a21 a23 a24 |

|a31 a32 a33 a34 |-> |a31 a33 a34 |*a12*(-1)

|a41 a42 a43 a44 | |a41 a43 a44 |

 

z a13 i a14 postępujemy analogicznie : a W = W(a11) +W(a12)+W(a13)+W(a14)

 

 

wyznaczniki Wx1,Wx2,Wx3,Wx4 otrzynujemy poprzez zamianę kolumny z współczynnikiami przy odpowiedniej niewiadomej za pomocą wyrazów wolnych np dla x2 wyznacznik macierzy wygląda tak:

Wx2:

|a11 b1 a13 a14 |

|a21 b2 a23 a24 |

|a31 b3 a33 a34 |

|a41 b4 a43 a44 |

 

aby go policzyć postepujemy tak jak przy liczeniu wyznacznika głównego ,ALE LICZYMY Z TEJ NOWEJ MACIERZY

Wx2 = W(a11)+W(b1)+W(a13)+W(a14);

*z tym że b1 ma sumę indeksów nieparzystą bo to 1 wiersz i 2 kolumna czyli razem 3

analogicznie postępujemy i obliczemy Wx1,Wx3,Wx4

 

x1 = Wx1/W x2 = Wx2/W itd.

 

 

PS:W razie wątpliwości polecam Poradnik Encyklopedyczny - Bronsztajna , Algebrę Liniową -Skoczylasa albo

spróbuj na Wikipedii , ewentualnie spytaj nauczyciela Matematyki

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Haqim -> bardzo dziękuje za pomoc . Niestety, próbowałem to przerobić na kod źródłowy i poległem :sad: , czy ktoś mógłby mi pomóc ??

Rozwiąż choć jeden taki układ na papierze a wszystko stanie się proste , poza tym jak masz tylko układ równań 4x4 to

kod w C wyglądałby mniej więcej tak

wyznacznik4(int A[][],int nrNiewiadomej,int B[]){int pomA[3][3];int sum=0;	if (0!=nrNiewiadomej)//wyznacznik główny  	{		 nrNiewiadomej--;		 for(j=0;j<wymiar;j++)		 //przepisujemy odpowiednie wyrazy wolne		// w C wszystkie tablice indeksujemy od 0			 A[j][nrNiewiadomej] = B[j] ;	   	 }		for(int i=0;i<4;i++)//po kolumnach   {		  for (int j=1;j<4;j++) //po wierszach		  {		  int ni=0;			 for(int k=0;k<4;k++)			 {			   if (k==i)				  continue;			   pomA=[j][ni];//uzupełnienie nowej macierzy 3x3			   ni++;			 }		  }   sum = sum+wyznacznik(pomA,i);	}}int wyznacznik3(int A[][],int m){int wynik;int  dodatnie = A[0][0]*A[1][1]*A[2][2]+A[0][1]*A[1][2]*A[2][0]+A[0][2]*[1][0]*[2][1];int ujemne = A[0][0]*A[1][2]*A[2][1]+A[0][1]*A[1][0]*A[2][2]+A[0][2]*[1][1]*[2][0];wynik = dodatnie- ujemne;  if  (1==(m%2) ) wynik = -wynik;return wynik;}main(){int A[4][4];int B[4];int W[5]; ??wczytaj dane for (int i=0;i<5;i++) W[i] = wyznacznik4(A,i,B); //masz obliczone wszystkie wyznaczniki dalej poradziszsobie sam :)}
Powodzenia

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...