Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теоретические и практические вопросы дисциплины «Информатика». Учебное пособие
.pdf
61
У м н о ж е ни е м а т р и ц ы н а в е к т о р , например:
C
1
2
3
P C
64
86
53
P
0 0
3
P3
182
4
Pr P3
1
Pr
0.333
0.667
0.167
0.083
Pr P3
100
1
det P3
det 12
2.7.2 Использование матричных операторов
для преобразования матриц и векторов
На панели Mатричные расположены операторы, позволяющие
выполнять некоторые матричные и векторные преобразования.
О п е р а то р в ы д е л е н и я (Хn) э л е м е н т а м а т р и ц ы или
вектора позволяет выделить (определить) элемент матрицы или
вектора. При выделении элемента следует учитывать, что по
умолчанию индексация элементов матрицы и векторов начинается с
нуля, например для выделения первого элемента матрицы P
необходимо записать:
Для ввода второго индекса, необходимо ввести запятую после
первого индекса и затем в появившийся маркер ввести второй индекс
массива.
О п е р а т о р в ыч и сл ен и я о б р а т н о й м ат ри цы (X-1)
позволяет вычислить обратную матрицу, например:
Кстати, хорошо известно, что если обратную матрицу умножить
на обычную, то получается единичная матрица:
О п е р а то р в ы ч и с л е н и я д е т е р м и н а н т а
( о п р е д е л и те л я ) м а т р и ц ы | Х | :

62
Определитель матрицы, как известно, это число, вычисляемое
)(Mf
P5
1
100101000
log P5( )
021
3
K P5
0
p4
0
2
cos p4( )
1
0
1
K
1
100
P2
1
2
5
3
1
3
7
9
2
P2
T
1
3
7
2
1
9
5
3
2
по матрице по определенным правилам.
О п е р а то р в е к т о р и з а ц и и (
означает выполнение однотипной операции с каждым элементом
массива, например:
В данном случае вычислен косинус от каждого элемента вектор-
столбца p4.
Другой пример: необходимо вычислить десятичный логарифм от
заданной матрицы P5.
Оператор выделения вектор столбца матрицы (M
выделить заданный столбец матрицы и записать его в виде векторстолбца, например для выделения первого столбца матрицы P5
необходимо выполнить:
) . Векторизация
< >)
позволяет
О п е р а то р т р а н с п о н и р о в а н и я ( М
позволяет перевернуть матрицу на 90 градусов так, что столбцы
становятся строками:
Т
) матрицы

63
Транспонирование вектор–столбца позволяет получить вектор-
K
1
100
K
T
1 100( )
K101
P5
162738495
10
cols P5( ) 5
rows P5( ) 2
max P5( ) 10
min P5( ) 1
mean P5( ) 5.5
C
1
2
3
last C( ) 2
строку:
О п е р а то р в ы ч и с л е н и я с у м м ы ( Συ) вектор-столбца
позволяет вычислить сумму элементов вектор-столбца:
2.7.3 Матричные функции
Функция c o l s () позволяет определить число столбцов матрицы:
Функция r o w s () позволяет определить число строк массива:
Функция m a x () позволяет определить максимальный элемент
массива:
Функция m i n () позволяет определить минимальный элемента
массива:
Функция m e a n () позволяет вычислить среднее значение
элементов матрицы:
Функция l a s t () предназначена для вычисления индекса
последнего элемента вектора:

64
Максимальное значение индекса вектор-столбца С равно двум,
ORIGIN:=1
ORIGIN:=1
i 1 2
j 1 2
M
i j
rnd 10( )
M
1.191
5.317
0.089
6.018
M1
i j
ceil rnd 10( )( )
M1
793
4
i 1 2
j 1 2
т.к. индексация элементов начинается с нуля.
Для изменения начальной индексации матриц и вектор-столбцов
используют специальную системную переменную (ORIGIN), значение
которой можно переопределять. Такую переменную, записанную
прописными буквами, необходимо поместить над матрицей, индексы
которой переопределяются, например:
Вышеприведенная запись означает, что индексация элементов
матрицы, расположенной ниже системной переменной, начата с
единицы.
Для генерации матрицы произвольных размеров можно
использовать функцию rnd (х), позволяющую получить равномерно
распределенное случайное число от нуля до x. Сгенерируем
квадратную матрицу с элементами, значение которых не превышает
10:
Если использовать функцию округления ceil (x), которая
вычисляет наименьшее целое число, большее или равное x, то
получим матрицу с целочисленными элементами:
Задача 12. Найти сумму всех элементов квадратной матрицы.
Cформировать целочисленную матрицу, используя функцию rnd
(максимальное значение элемента равно десяти).
Программа в MathCAD:

65
При решении данной задачи следует учитывать, что при
Определение индексов:
j:=i
Вычисление числа отрицательных элементов:
N=3
Вычисление суммы отрицательных элементов:
2
3
0
2
ln
cos
i
i
i
jj
y
y
xarcxZ
где x=(0,98; -0,45; 0,176; 0,675; -0,03)
y=(22,5; 3; 40)
U
i j
ceil rnd 10( )( )
U
257
10
S
i j
U
i j
S 24
F
3
4
2
7
4
3
6
2
3
i ORIGIN last F
1
N
i j
if F
i j
0 1 0
SN
i j
if F
i j
0 F
i j
0
SN 10
использовании функции rnd каждый раз будет получаться новая
матрица.
Задача 13. Вычислить сумму и число (количество) отрицательных
элементов заданной квадратной матрицы F.
Задача 14. Вычислить компоненты вектора Z по выражению:
Программа в MathCAD:
Программа для вычисления компонентов вектора Z

66
Программист – студент группы 6131−11 Климова Е.М.
X
0.98
0.45
0.176
0.675
0.03
Y
22.5
3
40
j ORIGIN last X( )
i ORIGIN last Y( )
p2
i
ln Y
i
Y
i
2
p2 0.162
Z
j
X
j
2
acos X
j
p2
Z
0.354
0.574
0.205
0.54
0.163
Дата разработки программы 29.10.13
Имя файла программы: Vektor_1.mcd
Задаем индексы массивов, как дискретные переменные:
Вычислим выражение под знаком суммы:
Итак, p2 − число (скаляр) и, следовательно, число компонентов
вектора Z определяется только индексом j.
Задача 15. Составить программу (смотри условие Задачи 14),
используя понятие векторизации.
В этом способе индексы не используются. Векторизация в
MathCAD позволяет выполнить одну или несколько операций с
каждым элементом массива.

67
Находим сумму элементов вектора Р2, используя оператор
вычисления суммы вектора, расположенный на панели Матрицы:
Z X2acos X( )
sp2
X
0.98
0.45
0.176
0.675
0.03
Y
22.5
3
40
P2
ln Y( )
Y
2
P2
0.019
0.134
8.505 10
3
SP2 P2
SP2 0.162
Z
0.354
0.574
0.205
0.54
0.163
Программа в MathCAD:
Вычислим выражение под знаком суммы, используя
векторизацию:
Итак, SP2 – это скаляр. В результате получаем:

68
Задача 16. Вычислить значение функции f(x) в зависимости от
,5,0
,5,2
,52
)(
2
i
i
i
i
x
x
x
xf
если x < 0
если 0 ≤ xi < 1
если xi ≥ 1,
X
5.2
3
0.7
2
i ORIGIN last X( )
f x( ) 2 x 5( ) x 0if
x22.5
0 x 1if
x 0.5( )( ) otherwise
Yif X
i
Y
4.7
1
2.01
1
условия:
где x=(5,2; -3; 0,7; -2).
Решить задачу, используя индексы. Записать заданное выражение как
функцию пользователя. Для решения задачи использовать оператор
программирования Add Line.
Программа в MathCAD:
Запишем заданное выражение как функцию пользователя,
используя оператор Add Line:
Очевидно, что полученное решение будет представлено в виде
массива, содержащего столько же компонентов, сколько имеет массив
Х. Подставим в функцию пользователя значения элементов массива Х:

69
F(X):= if(X<0, 2·X+5, if(X≥1, X-0.5, X2 -2.5))
X
5.2
3
0.7
2
i ORIGIN last X( )
Y
i
f X
i
Y
4.7
1
2.01
1
Задача 17. Решить Задачу 16, используя функцию if и записав
заданное выражение как функцию пользователя.
Программа в MathCAD:
Подставим в функцию пользователя значения массива X:

70
3 ОСНОВЫ РАБОТЫ НА VISUAL BASIC FOR
Название алгоритмического
языка, (год создания) и
авторы
Область использования
алгоритмического языка
Basic (1964), Томас Курт и
Джон Кемени
-универсальный язык
Fortran (1954-57), группа
программистов IBM
-для проведения научных расчетов
Pascal (1970), Никлаус Ричи
-для управления ресурсами ЭВМ
Ci (1972), Деннис Ричи
-для управления ресурсами ЭВМ
Ada (1979)
-для управления космическими
системами в проекте СОИ
APPLICATIONS
3.1 Понятие об алгоритмических языках высокого уровня
Составной частью информационных технологий является
алгоритмический язык.
А л г о ри т м и ч е с к и й я з ы к – это система обозначений,
предназначенных для однозначного описания алгоритма.
А л г о ри т м – это набор инструкций, описывающих порядок
действий исполнителя для достижения результата решения задачи за
конечное число действий.
Алгоритмический язык предназначен для создания
разнообразных прикладных программ.
В настоящее время пользователи, как правило, используют
а л г ор и т м и ч е с к и е я з ы к и в ы с о к о г о у р о в н я . На
алгоритмическом языке высокого уровня запись математических
выражений практически не отличается от их записи в математике.
Существуют сотни (если не тысячи) алгоритмических языков и
создаются новые. Вот некоторые из них:
Язык программирования понятен человеку, но совершенно
непонятен процессору, который работает с числами. Процессор
понимает только программы, записанные в машинных кодах. Для
перевода программ, записанных на алгоритмическом языке высокого
уровня, в машинные коды используют специальные программыпереводчики (т р а н с л я т о р ы ), которые могут быть двух видов:
к о м п и л я то р ы и и н т е р п р е т а т ор ы . Компилятор преобразует
исходный код (программу) в машинный код только в том случае, если
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
