.


:




:

































 

 

 

 


Diskret_analog(n, m, h0, a, b, p, f, c);




8. ( ) f[n][n] c[n][m].

: :

dx1/dt = x2(t) 0,5u1(t) + 0,2u2(t);

dx2/dt = x3(t) + u1(t) - u2(t);

dx3/dt = -2x1(t) 3x2(t) 3x3(t) - 0,1u1(t) + 5u2(t);

h0=0,1 c.

n=3, m=2,

0 1 0 -0.5 0.2

a = 0 0 1 b = 1 -1

-2 -3 -3 -0.1 5

:

p = -2 -0.5 0.5

0 -0.866 0.866

:

#include <stdio.h>

#include <math.h>

#include <conio.h>

void diskret_analog(int n, int m, float h0, float a[n][n], float b[n][m], float p[2][n], float f[n][n], float c[n][m]);

int main(int argc, char **argv)

{

int n; //

int m; //

float h0; //

int i, j; //

Char c0;

printf("\n Kol-vo fazov. koordinat n= ");

scanf("%d", &n);

printf("\n Kol-vo upravlen. m= ");

scanf("%d", &m);

printf("\n Interval diskretn. h0 =");

scanf("%f", &h0);

printf("\n");

float a[n][n]; //

float b[n][m]; //

float p[2][n]; //

// :

// - ,

// - ,

// .

// ,

// ,

float f[n][n]; //

// h0

float c[n][m]; //

// h0

printf("\nVvedite matricu dinamiki postrochno (%d znashenij v stroke):\n", n);

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

{

printf("\n%d stroka:\n", i+1);

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

scanf("%f", &a[i][j]);

}

printf("\n");

printf("\nVvedite matricu upravlenija postrochno (%d znashenij v stroke):\n", m);

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

{

printf("\n%d stroka:\n", i+1);

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

scanf("%f", &b[i][j]);

}

printf("\n");

printf("\nVvedite dejstvit. chasti sobstv. znachenij (%d znashenij):\n", n);

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

scanf("%f", &p[0][i]);

printf("\n");

printf("\nVvedite mnimye chasti sobstv. znachenij (%d znashenij):\n", n);

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

scanf("%f", &p[1][i]);

printf("\n");

Diskret_analog(n, m, h0, a, b, p, f, c);

printf("\nFundament. matrica discretnogo analoga:\n");

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

{

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

printf("%15.6e ", f[i][j]);

printf("\n");

}

printf("\n");

printf("\nMatrica upravl. discretnogo analoga:\n");

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

{

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

printf("%15.6e ", c[i][j]);

printf("\n");

}

printf("\n");

c0=getch();

Return 0;

}

:

 


:

1. :

void tastin(int n, float h0, float w[2][n+1]);

2. n ,

3. h0 ,

4. :

w[2][n+1] :

,

,

,

5. w [2][n+1]

6. :

Tastin(n, h0, w)

7. ( ) w[2][n+1].

: :

W(p) = (0,5p + 1) / (6p3 + 11p2 + 6p + 1)

h0 = 0,5 c.

:

#include <stdio.h>

#include <math.h>

#include <conio.h>

void tastin(int n, float h0, float w[2][n+1]);

int main(int argc, char **argv)

{

int n; //

float h0; //

Int i;

Char c;

printf("\n stepen polinoma znamenat. n= ");

scanf("%d", &n);

printf("\nVvedite period diskretn. h0 =");

scanf("%f", &h0);

printf("\n");

float w[2][n+1]; //

// .

// :

// - ,

// - ,

// - .

//

// .

printf("\nVvedite koeff. chislitelja (%d znacheniy):\n", n+1);

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

scanf("%f", &w[0][i]);

printf("\nVvedite koeff. znamenatelja (%d znacheniy):\n", n+1);

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

scanf("%f", &w[1][i]);

printf("\n");

Tastin(n, h0, w);

printf("\nKoefficienty chislit. diskretn. peredat. funkcii:\n");

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

printf("%e ", w[0][i]);

printf("\n\n");

printf("\nKoefficienty znamenat. diskretn. peredat. funkcii:\n");

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

printf("%e ", w[1][i]);

printf("\n\n");

c=getch();

Return 0;

}

:

, h0 = 0,5 :

W(z)=(-1,7094×10-3 z-3 +1,7094×10-3 z-2 +8,547×10-3z-1 +5,1282×10-3z) / (-0,39487 z-3 + 1,6325 z-2 2,2239 z-1 + z)

 

,

:

1. :





:


: 2017-03-11; !; : 290 |


:

:

,
==> ...

1740 - | 1607 -


© 2015-2024 lektsii.org - -

: 0.021 .