Заключительный пример
#include <stdio.h>
#define SIZE 4
void main(void) {
float u[SIZE], /* Входной вектор */
b[SIZE][SIZE], /* Входная матрица */
v[SIZE], /* Вектор b*u */
z, /* Результат */
scalar(); /* Скалярное произведение векторов */
int i, j;
printf ( "Исходный вектор: \n" );
for ( i=0; i<SIZE; i++ ) {
scanf ( "%f", &u[i] );}
printf ( "Исходная матрица: \n" );
for ( i=0; i<SIZE; i++ ) {
for ( j=0; j<SIZE; j++ ) {
scanf ( "%f", &b[i][j] ); } }
matrix(b, u, v);
z=scalar(v, u);
printf ( " \n \n \n Квадратичная форма равна %.5g \n", z);
} /* End main */
/* Умножение матрицы на вектор */
void matrix ( float a[][SIZE], float x[], float y[] ) {
int i, j;
for ( i=0; i<SIZE; i++ ) {
for ( y[i]=j=0; j<SIZE; j++ ) {
y[i] += a[i][j]*x[j];
}
}
} /* End matrix */
/* Скалярное произведение векторов */
float scalar (float x[], float y[] ) {
int i;
for ( z = i = 0; i<SIZE; i++ ) {
z += x[i]*y[i];
}
return z;
} /* End scalar */
Дата добавления: 2015-06-10; просмотров: 857;