ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.03.2024
Просмотров: 110
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
№
Наименование
Пояснения
Так будет на экране
3
График линий равно- го уровня (contour
plot) в виде проекций на плоскость аргу- ментов
Нужно сформировать график, щелчком левой кнопки мыши вызвать окно форматирования графика, выбрать вкладку Gen-
eral и включить кнопку Con-
tour Plot.
Можно один из графиков пока- зать как обычный, а другой – в виде линий равного уровня
9. Решение уравнений, нахождение корней уравнения n-го порядка
1
Нахождение всех корней уравнения n- го порядка.
Пример: найти корни уравнения
2x
7
+ 8x
5
+ 4x
4
– x + 1 = 0
(жирный знак равен- ства, <Ctrl>+ <=>)
Для нахождения всех корней
(включая комплексные) нужно сформировать вектор из коэф- фициентов уравнения (в поряд- ке возрастания степеней, начи- ная со свободного слагаемого).
Если какая-то степень отсутст- вует – нужно ввести нуль
166
Наименование
Пояснения
Так будет на экране
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 НЕЛЬЗЯ набирать литерами. Их можно либо вводить из окошка «Программирование» (меню View – Toolbars– Pro-
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 + B⋅y + C⋅z + 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 + B⋅y + C⋅z +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
≤ X ≤ x1, y0 ≤ Y ≤ y1.
175
Plane(x,y) =
h
y
x
Плоскость, проходящая через две точки перпендикулярно к дан-
ной плоскости. Пусть задано уравнение плоскости A
⋅x + B⋅y + C⋅z +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
≤ X ≤ x1, y0 ≤ Y ≤ y1.
175
Точка пересечения прямой и плоскости находится при решении системы уравнений, описывающей прямую и плоскость. Например, если прямая строится так, чтобы она проходила через две точки с координата- ми M
0
(x0, y0, z0) и M
1
(x1, y1, z1), не лежащие на заданной плоскости
A
⋅x + B⋅y + C⋅z + 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
≤ h ≤ H, 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
≤ h ≤ H, 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