Файл: Е. Г. Крушель, А. Э. Панфилов осваиваем mathcad.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.03.2024

Просмотров: 93

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Наименование
Пояснения
Так будет на экране
3
График линий равно- го уровня (contour
plot) в виде проекций на плоскость аргу- ментов
Нужно сформировать график, щелчком левой кнопки мыши вызвать окно форматирования графика, выбрать вкладку Gen-
eral и включить кнопку Con-
tour Plot.
Можно один из графиков пока- зать как обычный, а другой – в виде линий равного уровня
9. Решение уравнений, нахождение корней уравнения n-го порядка
1
Нахождение всех корней уравнения n- го порядка.
Пример: найти корни уравнения
2x
7
+ 8x
5
+ 4x
4
– x + 1 = 0
(жирный знак равен- ства, <Ctrl>+ <=>)
Для нахождения всех корней
(включая комплексные) нужно сформировать вектор из коэф- фициентов уравнения (в поряд- ке возрастания степеней, начи- ная со свободного слагаемого).
Если какая-то степень отсутст- вует – нужно ввести нуль
166

Продолжение прилож. 1

Наименование
Пояснения
Так будет на экране
2
Решение уравнений, систем уравнений, систем уравнений и неравенств.
Пример: найти реше- ние системы уравне- ний:
0.5
⋅x + 2⋅y
2
= 9
-3
⋅x⋅y -2⋅y
2
= 15
Используется жирный знак равенства (<Ctrl>+<=>) и дру- гие операторы отношений, см. п. 2 раздела 2).
Если уравнение нелинейное, то решений может быть несколь- ко. При заданном начальном приближении найдется только одно из них.
Решение может отсутствовать, тогда см. п. 3 раздела 9 167

Окончание прилож. 1

Наименование
Пояснения
Так будет на экране
3
Приближенное реше- ние уравнений, сис- тем уравнений, сис- тем уравнений и не- равенств, если точное решение найти не удается.
Пример: найти реше- ние системы уравне- ний:
Если использовать скобку given-find (см. п. 2 раздела 9), то MathCAD не сможет найти реше- ние. Выведется сообщение о невозможности нахождения точного решения. В этом случае можно использовать операторную скобку Given-Minerr, с помощью которой находится ре- шение с наилучшим приближением и
168

Приложение 2
СПРАВОЧНИК КОМАНД И КОНСТРУКТОВ, ИСПОЛЬЗУЕМЫХ
ДЛЯ ПРОГРАММИРОВАНИЯ В MATHCAD
Общие замечания
1. Команды MathCAD НЕЛЬЗЯ набирать литерами. Их можно либо вводить из окошка «Программирование» (меню ViewToolbarsPro-
gramming, Вид – Инструменты – Программирование), либо использовать сочетания клавиш (это быстрее). Сочетания клавиш видны в окошке про- граммирования в форме подсказок, см. рис. П 2.1. Если Вам не приходится программировать часто, запоминать сочетания клавиш нецелесообразно. а) Окошко с операторами программирования б) Всплывающие подсказки о сочетании клавиш
Всплывающая подсказка
(«хинт»): оператор for вводится клавишами
+<кавычки>
Рис. П2.1. Команды и операторы программирования.
2. Зоны охвата программных конструктов (for…, while…, if…) огра- ничиваются линиями, которые придают программе вид легко читаемой структуры (рис. П 2.2). Линия вводится командой Add Line (добавить линию) или клавишей «закрывающая квадратная скобка». Часто такие линии формирует сам MathCAD. Пример структуры программы:
169


Зона охвата конструкта if (ЕСЛИ)
Зона охвата конструкта for
(ДЛЯ КАЖДОГО), внутри – зона конструкта if max_value M
( )
max
M
0

number_max
0

n rows M
( )
1


max
M
k

number_max k

M
k max
>
if k
1 n

for max number_max






:=
Рис. П2.2. Структура программы. Линии выделяют зоны действия конструктов.
3. Все MathCAD-программы строятся как программы-функции. Пе- ременные внутри программы являются локальными (действуют только в пределах программы). В конце программы приводится либо скалярная переменная, либо вектор, либо матрица, которые возвращает функция.
Например, программа на рис. П 2.2 возвращает вектор из двух значений, которым внутри программы присвоены значения max и number_max.
Команды, конструкты и операторы с примерами их использования.
Оператор присваивания (стрелка справа налево). Пример: number_max
0

Согласно этому оператору ЭВМ проводит следующие действия:
− Формирует константу 0;
− Находит в основной памяти свободную ячейку;
− Присваивает этой ячейке имя (идентификатор) number_max;
− Заносит в эту ячейку константу 0.
Оператор читается так: ПРИСВОИТЬ значение НУЛЬ переменной с ИДЕНТИФИКАТОРОМ number_max.
Простой оператор if (ЕСЛИ) и otherwise (В ОСТАЛЬНЫХ СЛУ-
ЧАЯХ). Пример: m s
( )
V
"No"

s
0
if
V
"Yes"

otherwise
:=
ОБЯЗАТЕЛЬНО жирный знак равенства <Ctrl>+<=>
170

Программа возвращает No, если s = 0. В других случаях (т. е. если s
≠ 0) функция возвращает Yes.
Виды условий: равно (жирный знак равенства <Ctrl>+<=>), не рав-
но (<Ctrl>+<3>), больше, меньше, больше или равно (<Ctrl>+ <закры- вающая_круглая_скобка>), меньше или равно (<Ctrl>+<открывающая_ круглая_скобка>) или сочетания этих условий через логические функции
ИЛИ (обозначается знаком +), И (обозначается знаком умножения, *).
Пример: m s
( )
V
"No"

s
0
(
)
s
5

(
)
+
[
] s
"April"

(
)

if
V
"Yes"

otherwise
:=
Программа возвращает No, если [ s = 0 ИЛИ s не равно 5] И [s не равно April]. Во всех других случаях программа возвращает Yes.
Сложный оператор (конструкт) if (ЕСЛИ). Содержит последова- тельность команд, охваченных действием оператора. Для ввода линии, ограничивающей зону действия, нужно установить курсор в левый слот и ввести команду Add Line (можно клавишей «открывающая квадратная скобка»). Пример приведен слева. f g
( )
month
"April"

days
30

time
"Spring"

g
4
if month
"I don't know"

days
"I don't know"

time
"I don't know"

g
4

if month days time








:=
Если g = 4, то функция возвратит: f 4
( )
"April"
30
"Spring"




=




Если g не равно 4, то функция возвратит, например,




f 9
( )
"I don't know"
"I don't know"
"I don't know"




=
Конструкт for (ДЛЯ КАЖДОГО…). Конструкт for предназначен для повторяющихся (циклических) вычислений. Пример: найти сумму всех элементов массива M. Пусть в этом массиве хранятся следующие значения:
171


– заготовка переменной для суммы (как бы пустой коше- лек)
– расчет максимального номера элемента массива
М (по числу строк в массиве), единица учитывает нумерацию с нуля
– цикл для каждого значения переменной j = 0, 1, .., n (т. е. до последнего элемента массива)
– добавление очередного элемента массива к уже накопленной сумме
– значение, возвращаемое функцией
M
2.2 1.9 0.6 2.3 2.5 2.1
















:=
sum M
( )
sum
0

n rows M
( )
1


sum sum
M
j
+

j 0 n

for sum
:=
sum M
( )
11.6
=
Проследим, как работает программа с циклом for и массивом M.
1. До начала цикла sum = 0.
2. Номер последнего элемента n = 6 –1 = 5 3. Первый цикл: j = 0. a. Формула внутри цикла читается «по-еврейски» – справа нале- во. Вначале в процессор поступает значение M
j
с j = 0, т. е. ну- левой элемент 2.2. Затем на другой регистр процессора вызы- вается ячейка с идентификатором sum (в ней нуль). Затем про- цессор складывает оба числа (2.2 + 0) = 2.2 и отсылает в ячейку памяти с идентификатором sum. Теперь там число 2.2. b. Оператор for увеличивает номер цикла на 1 (получается j = 1) и сравнивает c n (равно 5). Поскольку номер цикла меньше 5, нужен еще один цикл с j = 1.
4. Второй цикл: j = 1. a. Вначале в процессор поступает значение M
j
с j = 1, т. е. первый элемент 1.9. Затем на другой регистр процессора вызывается ячейка с идентификатором sum (в ней 2.2). Затем процессор складывает оба числа (1.9 + 2.2 ) = 4.1 и отсылает в ячейку па- мяти с идентификатором sum. Теперь там число 4.1. b. Оператор for увеличивает номер цикла на 1 (получается j = 2) и сравнивает c n (равно 5). Поскольку номер цикла меньше 5, нужен еще один цикл с j = 2.
172

173 5. Третий цикл: j = 2. a. Вначале в процессор поступает значение M
j
с j = 2, т. е. второй элемент 0.6. Затем на другой регистр процессора вызывается ячейка с идентификатором sum (в ней 4.1). Затем процессор складывает оба числа (0.6 + 4.1 ) = 4.7 и отсылает в ячейку па- мяти с идентификатором sum. Теперь там число 4.7. b. Оператор for увеличивает номер цикла на 1 (получается j = 3) и сравнивает c n (равно 5). Поскольку номер цикла меньше 5, нужен еще один цикл с j = 3.
6. Четвертый цикл: j = 3. a. Вначале в процессор поступает значение M
j
с j = 3, т. е. третий элемент 2.3. Затем на другой регистр процессора вызывается ячейка с идентификатором sum (в ней 4.7). Затем процессор складывает оба числа (2.3 + 4.7 ) = 7.0 и отсылает в ячейку па- мяти с идентификатором sum. Теперь там число 7.0. b. Оператор for увеличивает номер цикла на 1 (получается j = 4) и сравнивает c n (равно 5). Поскольку номер цикла меньше 5, нужен еще один цикл с j = 4.
7. Пятый цикл: j = 4. a. Вначале в процессор поступает значение M
j
с j = 4, т. е. четвер- тый элемент 2.5. Затем на другой регистр процессора вызыва- ется ячейка с идентификатором sum (в ней 7.0). Затем процес- сор складывает оба числа (7.0 + 2.5 ) = 9.5 и отсылает в ячейку памяти с идентификатором sum. Теперь там число 9.5. b. Оператор for увеличивает номер цикла на 1 (получается j = 5) и сравнивает c n (равно 5). Поскольку номер цикла равен 5, нужен еще один (последний!) цикл с j = 5.
8. Шестой цикл: j = 5. a. Вначале в процессор поступает значение M
j
с j = 5, т. е. пятый элемент 2.1. Затем на другой регистр процессора вызывается ячейка с идентификатором sum (в ней 9.5). Затем процессор складывает оба числа (9.5 + 2.1 ) = 11.6 и отсылает в ячейку памяти с идентификатором sum. Теперь там число 11.6. b. Оператор for увеличивает номер цикла на 1 (получается j = 6) и сравнивает c n (равно 5). Поскольку номер цикла БОЛЬШЕ 5, циклы прекращаются, и программа возвращает число из ячей- ки sum (там накопилась сумма всех элементов массива 11.6).


Приложение 3
СПРАВОЧНИК ФОРМУЛ, НЕОБХОДИМЫХ ДЛЯ ВЫПОЛНЕНИЯ
ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ ИЗ ЧАСТИ 4
1. Плоскости
Плоскость, проходящая через три точки M
0
(x0, y0, z0), M
1
(x1, y1, z1) и M
2
(x2, y2, z2), не лежащие на одной прямой. Уравнение плоскости, оп- ределяющее ее координаты (x, y, z), получается, если приравнять нулю определитель матрицы P(если определитель равен нулю, то это является признаком того, что все три точки лежат на одной прямой. В этом случае существует бесконечное число плоскостей ("пучок плоскостей"), прохо- дящих через одну прямую):
)
0 2
(
)
0 2
(
)
0 2
(
)
0 1
(
)
0 1
(
)
0 1
(
)
0
(
)
0
(
)
0
(
z
z
y
y
x
x
z
z
y
y
x
x
z
z
y
y
x
x
P









=
Обозначим det(P) определитель матрицы P. Уравнение плоскости:
det(P) = 0. Раскрывая определитель, выразим одну из координат (обычно z) через две другие: z = f(x, y). Получим вектор Plane (x, y) координат для построения плоскости:
Plane(x,y) =
)
,
( y
x
z
y
x
Плоскость, проходящая через данную точку параллельно другой
плоскости. Пусть задано уравнение плоскости A
x + By + Cz + D = 0 и имеется точка с координатами M
1
(x1, y1, z1), не лежащая на заданной плоскости. Тогда уравнение плоскости, проходящей через эту точку па- раллельно заданной плоскости, имеет вид: A
⋅(x-x1) + B⋅(y-y1) + C⋅(z-z1) = 0.
Из этого уравнения нужно выразить одну из координат (обычно z) через две другие: z = f(x, y) и сформировать вектор Plane (x, y) координат для построения плоскости.
Плоскость, параллельная координатной плоскости и располо- женная на заданной высоте h. Вектор Plane (x, y) координат для по- строения плоскости получается так: x и y могут быть любыми, а коорди-
174
ната z должна быть для всей плоскости одной и той же (равной заданной высоте h).
Plane(x,y) =
h
y
x
Плоскость, проходящая через две точки перпендикулярно к дан-
ной плоскости. Пусть задано уравнение плоскости A
x + By + Cz +D = 0 и две точки (возможно, но не обязательно лежащие на ней). Заданы коор- динаты этих точек M
0
(x0, y0, z0) и M
1
(x1, y1, z1). Уравнение, определяю- щее координаты точек (x, y, z) искомой плоскости, получим, приравнивая нулю определитель матрицы Q:
C
B
A
z
z
y
y
x
x
z
z
y
y
x
x
Q
)
0 1
(
)
0 1
(
)
0 1
(
)
0
(
)
0
(
)
0
(






=
Координаты точек плоскости находятся из уравнения det(Q) = 0.
2. Прямая линия в пространстве
Уравнение отрезка, соединяющего 2 точки с координатами M
0
(x0,
y0, z0) и M
1
(x1, y1, z1). Координаты отрезка (X, Y) находятся из уравнений:
)
0 1
(
)
0
(
)
0 1
(
)
0
(
)
0 1
(
)
0
(
z
z
z
Z
y
y
y
Y
x
x
x
X


=


=


Вектор координат (X, Y) для построения прямой находится так: а) назначаем одну из координат свободной (обычно X); б) из уравнения
)
0 1
(
)
0
(
)
0 1
(
)
0
(
y
y
y
Y
x
x
x
X


=


выразим Y = f
1
(X); в) из уравнения
)
0 1
(
)
0
(
)
0 1
(
)
0
(
z
z
z
Z
x
x
x
X


=


выразим Z = f
2
(X).
Получим координаты для построения линии:
)
(
)
(
)
,
(
2 1
X
f
X
f
X
Y
X
Line
=
Если нужно показать только отрезок между двумя точками, то сле- дует указать пределы изменения аргументов: x0
Xx1, y0Yy1.
175


Точка пересечения прямой и плоскости находится при решении системы уравнений, описывающей прямую и плоскость. Например, если прямая строится так, чтобы она проходила через две точки с координата- ми M
0
(x0, y0, z0) и M
1
(x1, y1, z1), не лежащие на заданной плоскости
A
x + By + Cz + D = 0, то координаты (x, y, z) точки пересечения находят- ся из системы уравнений:









=

+

+



=




=


0
)
0 1
(
)
0
(
)
0 1
(
)
0
(
)
0 1
(
)
0
(
)
0 1
(
)
0
(
z
C
y
B
x
A
z
z
z
z
x
x
x
x
y
y
y
y
x
x
x
x
Эта система уравнений может иметь одно решение (точка пересечения единственна), бесконечно много решений (прямая линия лежит на плоско- сти) и ни одного решения (прямая проходит параллельно плоскости).
3. Цилиндр
При заданном радиусе основания цилиндра R и высоте H положение точки M(
ϕ, h) на боковой поверхности цилиндра определяется углом ϕ к оси абсцисс и высотой h над координатной плоскостью XOY.
Вектор Cylinder(
ϕ,h) координат для построения цилиндра:
h
R
R
h
Cylinder
)
sin(
)
cos(
)
,
(
ϕ
ϕ
ϕ


=
176

Диапазон изменения аргументов для построения «целого» цилиндра:
0
hH, 0 ≤
ϕ ≤ 2⋅π. Для построения части цилиндра нужно задать часть угла 2

π, например: 0.5⋅π ≤ ϕ ≤ π.
4. Конус
При заданном радиусе основания конуса R и высоте H положение точки M(h,
ξ) на боковой поверхности цилиндра определяется углом при вершине
ϕ (зависящим от соотношения высоты и радиуса основания) и высотой h над координатной плоскостью XOY.
Тангенс угла
ϕ при вершине конуса равен:
H
R
tg
=
)
(
ϕ
Вектор Cone(h,
ξ) координат для построения чертежа конуса:
h
H
h
H
R
H
h
H
R
h
tg
h
H
tg
h
H
h
Cone
)
sin(
)
(
)
cos(
)
(
)
sin(
)
(
)
(
)
cos(
)
(
)
(
)
,
(
ξ
ξ
ξ
ϕ
ξ
ϕ
ξ






=






=
Диапазон изменения аргументов для построения «целого» конуса:
0
hH, 0 ≤
ξ ≤ 2⋅π. Для построения части конуса нужно задать часть угла 2

π, например: 0.5⋅π ≤ ξ ≤ π.
Примечание: функция «тангенс» в MathCAD называется не tg( ), а tan( ).
177

178
СОДЕРЖАНИЕ
П
РЕДИСЛОВИЕ
........................................................................................ 3
В
ВЕДЕНИЕ
…………………………………………………………….. 7
ЧАСТЬ 1. ПЕРВОЕ ЗНАКОМСТВО С MATHCAD ………………. 9
Введение. Общие правила работы в среде Mathcad …………… 9
§1. Ваши первые примеры ……………..……………………….. 9
§2. Решение уравнений ……………….…………….…………... 15
§3. Учебная задача …………………………..…………………... 16
§4. Индивидуальные задания по части 1 ………………..……... 22
ЧАСТЬ 2. МАТРИЦЫ И ВЕКТОРЫ В MATHCAD ………………. 26
Введение. Общие сведения о матричной алгебре в Mathcad …. 26
§5. Осваиваем технику работы с матрицами и векторами ….... 27
§6. Алгебра матриц ………………………………………………. 39
§7. Некоторые применения матриц и векторов …...…………… 54
§8. Учебная задача ……………………….……………………... 69
§9. Индивидуальные задания по части 2 …………….………... 88
ЧАСТЬ 3. ПРОГРАММИРОВАНИЕ В MATHCAD ……………… 89
Введение. О программировании в среде Mathcad ……………... 89
§10. Осваиваем технику программирования в Mathcad. Ваша первая программа ……………………………………………....
91
§11. Задания для самостоятельной разработки программы.. … 111
§12. Учебная задача …………..…………………………………. 115
§13. Индивидуальные задания по части 3 ………..……………. 122
ЧАСТЬ 4. СИМВОЛЬНЫЕ ПРЕОБРАЗОВАНИЯ В MATHCAD .. 126
Введение. Сведения о символьных преобразованиях в Mathcad 126
§14. Осваиваем операции символьной математики ……..…..... 126
§15. Учебная задача ……….…………………………………..... 133
§16. Создание анимационных клипов ………………………….. 148
С
ПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
…………………………… 152
Приложение 1 ………………………………………………………... 153
Приложение 2 ………………………………………………………... 169
Приложение 3 ………………………………………………………... 174