Матриці обернені

Матриці обернені

. — ‘ . .

, , , , .

http://www.allbest.ru/

ֲ Ͳ Ͳ

ȯ ˲Ͳ Ҕ

:

, -33

..

— 2014

1.

2. ‘

3.

4.

5.

˳

:

— , . , . , ‘ . , , , . ‘ .

: ‘.

: .

: .

: .

1.

— .

— ( ), , , :

, (1)

.

, ; , — .

:

— .

— .

— .

— .

— .

— , .

‘ , (b — ) , . ‘ , .

2. ‘

— . — ‘ , , , . . ³ .

A E , ( A | E ) ( ). ϳ , , , , ( E | A-1). 䳿 :

1. .

2. , .

3. , — .

3.

. 1.

1. —

4.

, , , . Code::Blocks. ( ), , , . .

, ; , , . , .

. 1.

1.

( )

void intro

,

void menu

,

int main

; ,

; , ; ;

. 3.

3.

matrix[21][21]

float 2121

, ( )

n

int

( )

ratio

float

( )

i

int

j

int

k

int

( )

s[25]

char ()

c

char

, ,

5.

(. 2):

2.

(. 3):

3.

— (. 4):

4.

— .

ϳ , , , .

. ‘ , .

˳

1. ., . . 3-, . — 250 .

2. , .. : . , 2012. — 168 c.

:

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

void intro()

{

system(«cls»);

printf(«\t\t\t\tMATRIX INVERSION\n\n»);

printf(«\n\n\t\t\t\t\t\t By Oleksandr Travienikov\n\n»);

printf(«\nPress any key to start the program»);

printf(«\nPress ESC to exit)»);

}

void menu()

{

printf(«\nPress any key to repeat once more»);

printf(«\nPress ESC to exit)»);

}

int main()

{

float matrix[21][21], ratio, a;

int i, j, k, n;

char s[25], c;

intro();

while( (c=getch())!= 27)

{

system(«cls»);

for(;;)

{

printf(«Enter order of matrix (no more than 10)> «);

fgets (s, 5, stdin);

if (strlen(s) <=3)

{

if ((atoi(s)>0)&&(atoi(s)<=10))

{

n = atoi(s);

break;

}

printf(«Error: please input a valid integer no more than 10!\n»);

rewind(stdin);

continue;

}

printf(«Error: the string is too long!\n»);

rewind(stdin);

}

rewind(stdin);

printf(«Enter the matrix: \n»);

for(i = 0; i < n; i++)

{

for(j = 0; j < n; j++)

{

for(;;)

{

printf(» Input element [%d][%d] > «, i+1, j+1);

fgets (s, 25, stdin);

if (strlen(s) <=23)

{

if ((atof(s)!=0)||(strcmp(s, «0\n») == 0))

{

matrix[i][j] = atof(s);

break;

}

printf(«Error: please input a valid float number!\n»);

rewind(stdin);

continue;

}

printf(«Error: the string is too long!\n»);

rewind(stdin);

}

rewind(stdin);

}

}

printf(«\nYour matrix is: \n\n»);

for(i = 0; i < n; i++)

{

printf(«||»);

for(j = 0; j < n; j++){

printf(«%4.2f», matrix[i][j]);

printf(«\t»);

}

printf(«||\n»);

}

for(i = 0; i < n; i++)

{

for(j = n; j < 2*n; j++)

{

if(i==(j-n))

matrix[i][j] = 1.0;

else

matrix[i][j] = 0.0;

}

}

for(i = 0; i < n; i++)

{

for(j = 0; j < n; j++)

{

if(i!=j)

{

ratio = matrix[j][i]/matrix[i][i];

for(k = 0; k < 2*n; k++)

{

matrix[j][k] -= ratio * matrix[i][k];

}

}

}

}

for(i = 0; i < n; i++)

{

a = matrix[i][i];

for(j = 0; j < 2*n; j++)

{

matrix[i][j] /= a;

}

}

printf(«\nThe inverse matrix is: \n\n»);

for(i = 0; i < n; i++)

{

printf(«||»);

for(j = n; j < 2*n; j++)

{

printf(«%4.2f», matrix[i][j]);

printf(«\t»);

}

printf(«||\n»);

}

menu();

}

return 0;

}

Allbest.ru



Источник: otherreferats.allbest.ru


Добавить комментарий