Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы программирования для студентов технологического профиля. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
71
У м н о ж е н и е ( д ел ен и е ) к а ж д о г о э л е м ен т а
2 P
6 10 30
58 18 14
2 42 16
 
 
P
2
1.5
2.5
7.5
14.5
4.5
3.5
0.5
10.5 4
 
 
P P2
66
128
69
41 87 76
284 158 184
 
 
C
1 2 3
 
 

P C
64 86 53
 
 
P
0 0
3
м а т р иц ы н а с к ал яр :
У м н о ж е н и е м а т р и ц . Умножение матриц
выполняется только в том случае, если число столбцов первой
матрицы совпадает с числом строк второй матрицы, например:
У м н о ж е н и е м а т р и ц ы н а в е к то р , например:
2.7.2 Использование матричных операторов для преобразования матриц и векторов
На панели Mатрицы расположены операторы,
позволяющие выполнять некоторые матричные и векторные
преобразования.
О п е ра т о р в ы д е л е н и я (Хn) элемента матрицы или
вектора позволяет выделить (определить) элемент матрицы или
вектора. При выделении элемента следует учитывать, что по умолчанию индексация элементов матрицы и векторов начинается с нуля, например для выделения первого элемента
матрицы P необходима запись:
72
Для ввода второго индекса, необходимо ввести запятую
P3
1 824
 
 

Pr P3
1

Pr
0.333
0.667
0.167
0.083
 
 
Pr P3
100
1
 
 
det P3
det 12
)(Mf
p4
0
2
  
  

cos p4( )
1 0
1
 
 
после первого индекса и затем в появившийся местозаполнитель
ввести второй индекс массива.
Оператор вычисления обратной матрицы (X-1)
п о з во л я е т вычислить обратную матрицу, например:
К с т ат и , хо р о ш о и з в е с т н о, ч т о е с л и
о б р ат н ую м а т ри ц у умножить на обычную, то получается единичная матрица:
О п е ра т о р в ы ч и сл е н и я д е т ер м и н а н т а
( о п р е д е л и т е л я ) м а т р и ц ы | Х | :
Определитель матрицы, как известно, это число, вычисляемое по матрице по определенным правилам.
О п е ра т о р в е к т ор и з а ц и и (
означает выполнение однотипной операции с каждым элементом массива, например:
В данном случае вычислен косинус от каждого элемента
вектор –столбца p4.
Другой пример: необходимо вычислить десятичный
логарифм от заданной матрицы P4:
) . Векторизация
73
P4
1
100
10
1000
 
 

log P4( )

0 2
1 3
 
 
Оператор выделения вектор столбца матрицы (M
K P4
0
 

K
1
100
 
 
P2
1 2 5
3 1 3
7 9 2
 
 
P2
T
1 3 7
2 1 9
5 3 2
 
 
K
1
100
 
 
K
T
1 100( )
K101
P5
162738495
10
 
 

cols P5( ) 5
позволяет выделить заданный столбец матрицы и записать его в
виде вектор–столбца, например для выделения первого столбца
матрицы P4 необходимо выполнить:
О п е р ат ор т р а н с п о н ир о в а н и я ( МТ) матрицы
позволяет перевернуть матрицу на 90 градусов, так, что столбцы
становятся строками:
Транспонирование вектор–столбца позволяет получить
вектор –строку:
< >)
столбца позволяет вычислить сумму элементов вектор­столбца:
матрицы:
О п е р ат ор в ыч исл е н и я с у м мы ( Σ υ ) вектор–
2.7.3 Матричные функции
Ф у н к ци я cols () позволяет определить число столбцов
74
Ф у н к ци я rows () позволяет определить число строк
rows P5( ) 2
max P5( ) 10
minP5( ) 1
mean P5( ) 5.5
C
1 2 3
 
 
last C( ) 2
ORIGIN 1
массива:
Ф у н к ци я ma x () позволяет определить максимальный
элемент массива:
Ф у н к ци я min () позволяет определить минимальный
элемента массива:
Ф у н к ци я mea n () позволяет вычислить среднее
значение элементов матрицы:
Ф у н к ци я l a s t () предназначена для вычисления индекса
последнего элемента вектора:
двум, т.к. индексация элементов начинается с нуля.
столбцов используют специальную системную переменную (ORIGIN) значение которой можно переопределять. Такую переменную, записанную прописными буквами, необходимо поместить над матрицей индексы которой переопределяются, например:
элементов матрицы, расположенной ниже системной переменной, начата с единицы.
Максимальное значение индекса вектор-столбца С равно
Для изменения начальной индексации матриц и вектор-
Вышеприведенная запись означает, что индексация
75
Для генерации матрицы произвольных размеров можно
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
7 934
 
 
ORICIN 1
i 1 2
j 1 2
U
i j
ceil rnd 10( )( )
U
257
10
 
 
S
i j
U
i j

S 24
использовать функцию rnd (х), позволяющую получить равномерно распределенное случайное число от нуля до x.
Сгенерирум квадратную матрицу с элементами, значение
которых не превышает 10:
Если использовать функцию округления ceil (x), которая вычисляет наименьшее целое число большое или равное x то получим матрицу с целочисленными элементами:
Программа 2.7.3.1. Найти сумму всех элементов квадратной матрицы. Cформировать целочисленную матрицу, используя функцию rnd (максимальное значение элемента равно десяти).
Программа 2.7.3.2. Вычислить сумму отрицательных элементов заданной квадратной матрицы F и найти число отрицательных элементов той же матрицы.
Программа в MathCad:
76
F
3 4 2
7
4
3
6 2
3
 
 

Определение индексов:
i ORIGIN last F
1
 

i j
Вычисление числа отрицательных элементов:
N
i j
if F
i j
0 1 0

N=3
Вычисление суммы отрицательных элементов:
SN
i j
if F
i j
0 F
i j
 0

SN 10
Программа 2.7.3.3. Вычислить компоненты вектора Z по
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)
выражению:
Программа в MathCad:
Программа для вычисления компонентов вектора Z Программист – студент группы 6131-11 Климова Е.М. Дата разработки программы 29.10.13 Имя файла программы: Vektor_1.mcd
77
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
    
    
Вычислим выражение под знаком суммы:
Итак, p2-число (скаляр) и, следовательно, число компонентов вектора Z определяется только индексом j.
Программа 2.7.3.4. Составить программу (см. условие задачи
2.7.3.3), используя понятие векторизации.
В этом способе индексы не используются. Векторизация в
MathCad позволяет выполнить одну или несколько операций с каждым элементом массива.
Программа в MathCad:
78
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
 
 
Находим сумму элементов вектора Р2, используя
оператор вычисления суммы вектора, расположенный на панельке Матрицы:
SP2 P2

SP2 0.162
Z
j
X
j
2
acos X
j
p2


Z
0.354
0.574
0.205
0.54
0.163
    
    
векторизацию:
Итак, SP2 –это скаляр. В результате получаем:
Программа 2.7.3.5. Вычислить значение функции f(x) в зависимости от условия:
79
 
 
,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).
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
  
  
Решить задачу, используя индексы. Записать заданное выражение, как функцию пользователя, Для решения задачи использовать оператор программирования Add line.
Программная реализация в MathCad:
Запишем заданное выражение как функцию пользователя, используя оператор Add line:
Очевидно, что полученное решение будет представлено в виде массива, содержащим столько же компонентов, сколько имеет массив Х. Подставим в функцию пользователя значения
элементов массива Х:
80
Программа 2.7.3.6. Решить предыдущую задачу (2.7.3.5.),
X
5.2 3
0.7 2
  
  

i ORIGIN last X( )
f x( ) if x 0 2 x 5 if x 1 x 0.5 x
2
2.5


Y
i
f X
i

Y
4.7 1
2.01 1
  
  
x
5.2 3
0.7 2
  
  

f1 x( ) if x 0 2 x 5 if x 1 x 0.5 x
2
2.5


используя функцию if, записав заданное выражение как функцию пользователя.
Программная реализация в MathCad:
Подставим в функцию пользователя значения массива x:
Программа 2.7.3.7. Решить задачу (см. условие Задачи 2.7.3.5.),
используя понятие векторизации, записав заданное выражение
как функцию пользователя. Для решения задачи использовать функцию if.
Подставим в функцию пользователя значения массива x и
используем векторизацию:
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]