Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМП к заданиям по информатике “Обработка массив...doc
Скачиваний:
4
Добавлен:
15.11.2019
Размер:
651.26 Кб
Скачать

4.2.3.2. Получение вектора.

Используя известную матрицу А, вычислить вектор X, если xi(i=1,2..n) вычисляется как наибольший среди принадлежащих отрезку [-10,10] элементов i-го столбца матрицы.

Математическая формулировка задачи

, , i=

Таблица переменных

Имя

Тип

Назначение

Параметр

n

целый

размерность вектора

формальный

i, j

параметр цикла

локальный

m

вещественный

вспомогательный

a[1..n,1..n]

матрица

формальный

x[1..n]

вектор

А n, a[1..N, 1..N] лгоритм процедуры vector

нет

да

нет

x[1..n]

да

procedure vector(n:integer; a:matr; var x:vect);

var i,j:integer; m:real;

begin

for i:=1 to n do

begin

m:=-exp(30);

for j:=1 to n do

if abs(a[j, i])<=10 then if a[j, i]>m then m:=a[j, i];

x[i]:=m;

end;

end{vector};

4.2.3.3. Матричные операции.

Выполнить матричную операцию Z=

М

Х – вектор

- инвентированный вектор

А - матрица

- транспонированная матрица

Е – единичная матрица

Z – матрица – результат

атематическая формулировка задачи

1) ;

2) U=A - E ;

3) V=A-E ;

4) C=U.V ;

5) ;

6) .

Таблица переменных

Имя

Тип

Назначение

Параметр

n

целый

размерность

формальный

a[1..n,1..n]

вещественный

матрица

вектор

z[1..n,1..n]

х[1..n]

i ,k, j

целый

параметр цикла

локальный

s

вещественный

вспомогательный скаляр

y

b[1..n,1..n]

матрица

u[1..n,1..n]

v[1..n,1..n]

c[1..n,1..n]

Алгоритм процедуры matoper

n, a[1..n,1..n], x[1..n]

нет

да

writematr

(’B’, n,b)

writematr

( ‘U’,n,u)

writematr

( ‘V’,n,v)

Writematr

(‘C’,n,C)

writeln (‘y=’,y)

z[1:n,1:n]

procedure matoper(n:integer;a:matr;x:vect;var z:matr);

var i,k,j:integer; s,y : real; b,u,v,c:matr;

begin

for i:=1 to n do

for j:=1 to n do

begin

b[i,j]:=a [j, i];

u[i,j]:=b[i, j];

v[i, j]:=a[i, j];

if i=j then

begin

u[i,j]:=b[i,j]-1;

v[i,j]:=a[i,j]-1;

end;

end;

for i:=1 to n do

for j:=1 to n do

begin

s:=0;

for k:=1 to n do s:=s+u[i,k]*v[k,j];

c[i,j]:=s;

end;

y:=0;

for i:=1 to n do y:=y+x[i]*(-x[i]);

for i:=1 to n do

for j:=1 to n do z[i,j]:=c[i,j]*y;

writeln('B=At':20);

writmatr('b',n,b);readln;

writeln('U=B-E':21);

writmatr('u',n,u);readln;

writeln('V=A-E':21);

writmatr('v',n,v);readln;

writeln('C=U*V':21);

writmatr('c',n,c);readln;

writeln('скаляр y=X*Xи':26);

writeln('y=',y:6:3);

end{matoper};