.


:




:

































 

 

 

 


( )

Ҕ

()

1

1

: 1.1

..

: ..

, 2012.

.

1. ( ).

2. .

3. .

 

( ).

 

.

 

1. . ,

Ax=f (1)

, - . , .

, , , . , , .. . , , .

(2)

, . . , (2)

(3)

(3) . . , .

. , . (2)

 

. , , .

, .

2. . ,

- . , .

1. , .

2. , - l - .

,

, .

1) ( , ) ( ).

2) - l -é ñòðîê.

3) - l - .

:

(4)

 

 

(1),

(5)

.

(6)

(6)

(7)

.. (4)

, (6) . (7)

(7)

(8)

(9)

(9) .

(10)

, (10) (9)

(11)

. (12)

(12) (8) -

(11) . (11)

(13)

(14)

(14)

(13)

,

(15)

(16)

.

, (16) .

, (16)

PA=LU, (17)

L - , , P - .

(18)

2) ,

3)

.. - , .

(18), ,

(19)

(16) ,

. - L - , (17) . , , , .. , .

3. . , , (1).

,

(20)

- ,

- .

, , (19), , ,

PAx=Pf, (21)

- .

.

1. -

, -

.

.4.

. -

,

=LU, (22)

L- U- . (1) .

4. 1. m - .

m=2, ..

=, - . , , ..

.

m -1. , . m. m

: . m-1 , .

. . , . .. , m-1 , - . , ,

.

l m, , m-1

(23) . , .

.

 

 

.

 

a) ( ).

b) .

 

 

.

.

 

#include<iostream>

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

 

float det(float [20][20], int);

 

void iskl(float a[20][20], int k, int n)

{

int i, j;

float r, b[40];

r=a[k][k];

for (j=k; j<n+1; j++) a[k][j]/=r;

for (i=k+1; i<n; i++)

{

r=a[i][k];

for(j=k; j<n+1; j++) a[i][j]-=a[k][j]*r;

}

}

 

int _tmain(int argc, _TCHAR* argv[])

{

int i, j, n, k;

float a[20][20], d[20][20], b[40], temp[20][20], t, intDet;

char anyKey;

//____sozdanie____

ofstream outfile("matr1.txt");

cout<<"VVedite razmernost yravneniya: ";

cin >> n;

cout<<endl;

cout<<"Vvedite postro4no matricy:"<<endl;

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

{

cin >> t;

outfile << t <<" ";

}

outfile.close();

cout<<"Poly4ennaya matrica:"<<endl;

//_____4tinie i pe4at_____

fstream infile("matr1.txt");

for (i=0; i<n; i++) //bilo n+1

{

cout<<endl;

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

{

infile >> t;

temp[i][j]=t;

cout<<t<<" ";

}

}

 

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

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

a[i][j]=temp[i][j];

//vector

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

// b[i]=temp[i][n+1];

 

intDet=det(a, n);

if (intDet==0)

{

cout<<"Reweniya net. ";

goto net;

}

else

{

cout<<"Sistema rewaema)) YRA))"<<endl;

cout<<"det= "<<intDet;

}

 

cout<<"Treygolnii vid:"<<endl;

for (i=0; i<n; i++) iskl(temp, i, n);

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

{

cout<<endl;

for (j=0; j<n+1; j++) cout<<temp[i][j]<<' ';

}

 

cout<<"\n";

for (i=0; i<n+1; i++){b[i]=temp[i][n]; cout<<b[i]<<" ";}

cout<<"\n"<<"Rewenie SLAY:"<<endl;

for (i=n; i>-1; i--)

{

b[i]/=temp[i][i];

for (j=i+1; j<n; j++) b[i]-=b[j]*temp[i][j];

}

for (i=0; i<n; i++) cout<<b[i]<<" ";

net:

cout<<"\nPress anykey to exit.";

cin>>anyKey;

return 0;

}

 

float det(float b[20][20], int n)

{

float x,s;

int i,j,k;

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

for (k=i+1; k<n; k++)

{

x=b[k][i]/b[i][i];

for (j=i; j<n; j++) b[k][j]=b[k][j]-b[i][j]*x;

}

s=1;

for (i=0; i<n; i++) s=s*b[i][i];

return s;

}

 

 

.

#include<iostream>

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

using namespace std;

static int n;

void obrat(double **a)

{double **d,vrem,max,tryam;

int i,j,*p,jmax,temp;

d=new double *[2*n];

for (i=0;i<n;i++) d[i]=new double[n];

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

{for(j=0;j<n;j++)d[i][j]=a[i][j];

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

{if(j==n+i)d[i][j]=1;

else d[i][j]=0;

}

}

p=new int[n];

for(j=0;j<n;j++)p[j]=j;

//k-nomer pervogo uravn

for(int k=0;k<n-1;k++)

{max=fabs(d[k][k]);

jmax=j;

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

if(fabs(d[k][j])>max)

{max=fabs(d[k][j]);

jmax=j;

temp=p[k];

p[k]=p[jmax];

p[jmax]=temp;

}

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

{tryam=d[i][k];

d[i][k]=d[i][jmax];

d[i][jmax]=tryam;

}

 

for(i=k+1;i<n;i++)

{vrem=d[i][k]/d[k][k];

for(j=k;j<2*n;j++) d[i][j]-=vrem*d[i][j];

}

}

for(int k=n-1;k>0;k--)

{for(i=k-1;i>=0;i--)

vrem=d[i][k]/d[k][k];

for(j=k;j<2*n;j++)d[i][j]-=vrem*d[i][j];

}

 

 

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

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

d[i][j]=d[i][j]/d[i][i];

d[i][i]=1;

}

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

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

cout<<d[p[i]][j]<<" ";

cout<<endl;

}

}

 

 

int main ()

{int i,j;

cout<<"vvedite razmer matrici"<<endl;

cin>>n;

double **a;

a=new double*[n];

for (i=0;i<n;i++) a[i]=new double[n];//i-stroki,j-stolbci

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

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

{cout<<" vvedite elementi matrici a["<<i<<"]["<<j<<"]"<<endl;

cin>>a[i][j];

}

 

}

for (i=0;i<n;i++)//vivod matrici

{

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

cout<<a[i][j]<<" ";

}

obrat(a);

getchar ();

getchar ();

return 0;

}

 

:



<== | ==>
| 7.
:


: 2016-09-03; !; : 322 |


:

:

, ,
==> ...

1299 - | 1261 -


© 2015-2024 lektsii.org - -

: 0.146 .