ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
...
27 downloads
263 Views
823KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
«Пензенский государственный университет»
Использование пакета MathСAD в инженерных расчетах Методические указания к выполнению лабораторных работ
Пенза Издательство Пензенского государственного университета 2007
УДК 004.451.9:501 И 88
Рассматриваются основные приемы решения возникающих в инженерной практике математических задач средствами пакета MathCAD. Содержатся описания лабораторных работ, приводятся варианты заданий. Методические указания составлены на кафедре «Информационноизмерительная техника» и предназначены для студентов специальностей 200102, 200106, 140607, изучающих дисциплины «Компьютерные технологии в приборостроении», «Метрология, стандартизация и сертификация» и «Автоматизация инженерных расчетов».
С о с т а в и т е л и: В. В. Регеда, О. Н. Регеда
Р е ц е н з е н т А. А. Данилов, доктор технических наук, профессор, академик Российской метрологической академии, заместитель директора ФГУ «Пензенский ЦСМ»
2
Лабораторная работа №1
Решения простейших задач средствами MathCAD Цель лабораторной работы – ознакомиться с основными правилами задания математических задач и их решения в среде пакета MathCAD.
Назначение пакета и основные его возможности Математическая система MathCAD во всем мире признана одной из наиболее совершенных программных систем, позволяющих решать математические задачи в объеме программы технического вуза. Начиная с версии MathCAD 2002, затем MathCAD 11 и последней доступной версии MathCAD 12, система обеспечивает удобный интерфейс и широкий набор решаемых задач. Достоинством системы является возможность использования так называемой символьной математики – методов решения задач аналитическими методами. Главное меню системы содержит следующие позиции: File (Файл) – работа с файлами, сетью Internet и электронной почтой; Edit (Правка) – редактирование документов; View (Вид) – изменение средств обзора и включения элементов интерфейса; Insert (Вставить) – установка вставок объектов и их шаблонов; Format (Формат) – изменение формата (параметров) объектов; Tools (Сервис) – управление параметрами и процессом вычисления; Symbolics (Символика) – выбор операций символьного процессора; Window (Окно) – управление окнами системы; Help (Помощь) – работа со справочной базой данных о системе. Панели инструментов служат для быстрого выполнения наиболее часто применяемых команд. На рис. 1 изображено окно MathCAD с пятью основными панелями инструментов, расположенными непосредственно под строкой меню. 3
Рис. 1
Кнопки в панелях сгруппированы по сходному действию команд: – Standard (Стандартная) служит для выполнения большинства операций, таких, как действия с файлами, редакторская правка, вставка объектов и доступ к справочным системам; – Formatting (Форматирование) – для форматирования (изменения типа и размера шрифта, выравнивания и т.п.) текста и формул; – Math (Математика) – для вставки математических символов и операторов в документы; – Resources (Ресурсы) – для вызова Ресурсов MathCAD (примеров, учебников и т. п.); – Controls (Элементы управления) – для вставки в документы стандартных элементов управления интерфейса пользователя (флажков проверки, полей ввода и т. п.). Панель Math (Математика) предназначена для вызова на экран еще девяти панелей (рис. 2), с помощью которых, собственно, и происходит вставка математической операции в документы. Перечислим назначение математических панелей: – Calculator (Калькулятор) служит для вставки основных математических операций, получила свое название из-за схожести набора кнопок с кнопками типичного калькулятора; – Graph (Графики) – для вставки графиков; – Matrix (Матрица) – для вставки матриц и матричных операторов; – Evaluation (Определение) – для вставки операторов управления вычислениями; – Calculus (Вычисления) – для вставки операторов интегрирования, дифференцирования, суммирования;
4
– Boolean (Логика) – для вставки логических (булевых) операторов; – Programming (Программирование) – для программирования средствами MathCAD; – Greek (Греческий Алфавит) – для вставки греческих символов; – Symbolic (Символы) – для вставки символьных операторов.
Рис. 2
Работа с системой MathCAD сводится к подготовке в окне редактирования задания на вычисления и к установке форматов для их результатов. Входным языком системы является язык визуального программирования, многие записи вводятся просто выводом шаблонов соответствующих операторов. Используемые при описании задачи переменные должны быть определены с использованием знака присваивания :=, назначение которого отлично от используемого в математике знака равенства. 5
MathCAD интегрирует в себе три редактора: формульный, текстовый и графический. Для запуска первого достаточно установить курсор мыши в любом свободном месте окна редактирования и щелкнуть левой клавишей мыши. Например, если хотите найти произведение членов некоторого ряда чисел, то следует в панели найти соответствующую пиктограмму и вывести шаблон данной операции на поле документа
∏ =
После заполнения соответствующих позиций шаблона и ввода знака равенства = получим результат 20
∏
x=1
sin ( x) ⋅
e x
− 15
= −2.628 × 10
Текстовые блоки позволяют создавать в документе пояснения, т. е. делать документ MathCAD более понятным. Для задания текстового блока достаточно ввести символ '' (двойная кавычка). В появившемся прямоугольнике можно вводить текст и осуществлять его редактирование. В общем случае решаемая задача состоит из отдельных решающих блоков. Решающие блоки могут иметь следующий вид: – вычисляемое числовое значение = результат вычисления
3.8 = 16.677 – вычисление значения числового выражения; 2.6 – переменная := числовое значение а := 12.40 g := −3.56 s := 11.22 – определение переменных;
12 + 3.2
– переменная := вычисляемое выражение f := a + 2 ⋅ g ⋅
s – задание выражения. 3
6
Следует обратить внимание на то, что, используя опцию Number (Результат) из меню Format, можно управлять разрядностью выводимых результатов вычислений. MathCAD различает строчные и прописные буквы в именах переменных. Для задания циклических вычислений с целочисленной управляющей переменной цикла используется следующая конструкция: Имя переменной := Nнач.. Nкон Здесь знак .. вводится набором знака ; , Nнач – начальное значение переменной и Nкон – конечное значение переменной. Если Nнач < Nкон, то шаг изменения переменной равен +1, а если Nнач > Nкон, то –1. Переменные такого типа в системе MathCAD называются переменными с заданными пределами измерения или ранжированными переменными. Шаг изменения можно задать любым, используя другую конструкцию задания таких переменных: Имя переменной := Nнач, Nслед.. Nкон , где Nслед – следующее за Nнач значение переменной. Шаг в этом случае равен Ncлед – Nнач. Циклы, реализованные с помощью переменных с заданными пределами изменения, показаны на рис. 3 0 .. 5
k
i
5 .. 0
k
i
0 1 2 3 4 5
5 4 3 2 1 0
t
2 , 1.5 .. 1.5 t
7
2 , 1.5 .. 1 f
2 1.5 1 0.5 0 0.5 1 1.5 Рис. 3
f
2 1.5 1 0.5 0 0.5 1
В ранжированных переменных невозможно осуществить доступ к произвольному элементу представляемого ими ряда. Этой цели служат массивы. Наиболее распространены одномерные массивы – векторы и двумерные – матрицы. В MathCAD массив задается именем, как и любая переменная. Вектор имеет ряд элементов с определенным порядком расположения. Порядковый номер элемента задается индексом. Нижняя граница индексации определяется значением системной переменной ORIGIN, которая может иметь значение 0 или 1. Влияние значения этой системной переменной показано на примере (рис. 4). ORIGIN
0
3 M
M2 = 1
2
При данном значении переменной ORIGIN M[0]=3, M[1]=2, M[2]=1
1 ORIGIN
1
3 M
2
M2 = 2
При данном значении переменной ORIGIN M[1]=3, M[2]=2, M[3]=1
1 Рис. 4
Элементы матриц также являются индексированными переменными, имена которых совпадают с именами матриц. В этом случае для каждой индексированной переменной указываются два индекса: первый – для номера строки, второй – для номера столбца. Для указания подстрочных индексов после имени переменной вводится знак открывающей квадратной скобки. Вектор или матрица могут быть созданы присваиванием их элементам (индексированным переменным) тех или иных значений. Это возможно при использовании шаблона извлекаемого из меню матричных операторов (последний пример) или с помощью оператора присваивания без использования шаблона. Примеры заданий различных матриц показаны на рис. 5. Используемый в примере оператор отношения имеет более жирное начертание =, чем оператор равенства =.
8
Последовательность расположения отдельных решающих блоков в задаче должна быть как для операторов в языковой конструкции слева – направо, сверху – вниз.
Создание векторов и матриц
X := 2
X := 4
0
1
j := 0 .. 2 M0
M1
i := 0 .. 2 j, i
j, i
X := 5 3
⎛⎜ 2 ⎟⎞ 4 ⎟ Создание вектора. ⎜ Обратите внимание X = ⎜ 0 ⎟ на значение X(2) ⎜5⎟ ⎝ ⎠
:= 0
⎛0 0 0⎞ M0 = ⎜ 0 0 0 ⎟ ⎜ ⎟ ⎝0 0 0⎠
Нулевая матрица
:= if ( i
⎛1 0 0⎞ M1 = ⎜ 0 1 0 ⎟ ⎜ ⎟ ⎝0 0 1⎠
Единичная матрица
j , 1 , 0)
f( j , i) := j + 0.5 ⋅ i MC := matrix ( 5 , 3 , f)
⎛0 ⎜1 ⎜ MC = ⎜ 2 ⎜3 ⎜ ⎝4
⎞ ⎟ 2 ⎟ 3⎟ 4⎟ ⎟ 5⎠
0.5 1 1.5 2.5 3.5 4.5
Создание матрицы на основе функции
Рис. 5
При составлении любой задачи нужно максимально использовать площадь листа, оставляя на нем как можно меньше пустых мест. Следует знать, что не все доступные функции MathCAD имеют соответствующие кнопки, для их вызова или ознакомления со всем перечнем функций следует воспользоваться соответствующей кнопкой из системы. При решении любой задачи возможны формальные ошибки. В этом случае ошибочный элемент задачи выделяется красным цветом и появляется сообщение об ошибке. В приложении А дан список этих сообщений. В приложении Б приведены некоторые встроенные функции MathCAD. 9
Векторизацией вектора или матрицы называется выполнение каких-либо операций (например, возведение в степень) одновременно над всеми элементами их массива.
Порядок выполнения работы 1. Войти в систему MathCAD. Внимательно ознакомиться с описанием лабораторной работы. Выполнить некоторые рассмотренные примеры. После завершения изучения описания удалить с листа рассмотренные примеры. 2. Средствами пакета MathCAD выполнить последовательность заданий из варианта, указанного преподавателем. Решения для всех примеров оформить в виде единого документа. Каждую задачу обязательно сопровождать комментариями. 2.1. Вычислить значение числового выражения
⎧ ⎫ 5 8,8077 + 4,9⎬ ⋅ . ⎨ ⎩ 20 − [28,2 : (13,333 ⋅ 0,3 + 0,0001)]⋅ 2,004 ⎭ 32 2.2. Решить квадратное уравнение ax 2 + bx + c = 0 для значений a, b и c, указанных в табл.1, используя выражение для дискриминанта
Δ = b 2 − 4ac. Таблица 1 Номер варианта
a
b
c
1
2
−8
−3
2
−1,1
−7
1
3
1
5
−1,18
4
−1,3
−6
1,2
5
−7
15
2
6
−5
−10
3,3
7
3
11
−3,1
8
−2,3
−9
2,5
9
2,5
8
−1,9
10
3,8
−12
−4,5
10
2.3. Найти значение электрического сопротивления, состоящего из шести параллельно соединенных сопротивлений, значения которых указаны в табл. 2. Таблица 2 Номер варианта
R1
R2
R3
R4
R5
R6
1
150
120
250
380
320
640
2
550
450
890
430
640
550
3
670
770
370
620
350
670
4
210
450
450
690
830
990
5
900
850
890
780
810
780
6
840
930
585
775
448
888
7
760
420
754
886
594
897
8
884
669
553
689
690
890
9
890
870
869
680
668
597
10
888
776
594
970
980
860
2.4. Выполнить следующее задание. Даны x = 1,5; y = 2; z = 3. Вычислить a, b, c для: 1. a =
x −1 − 3 y 1+
2
2
x y + 2 4
, b = x(arctgz + e − (x + 3) ), с = a 2 + b .
3
3 + e y −1
(y − x) 2 y − x , b =1+ y − x + + , c = a 2 + b2 . 2. a = 2 2 3 1 + x y − tgz 3. a = (1 + y)
x + y/(x 2 + 4) e − x − 2 + 1/(x 2 + 4) x
4. a = y +
y2 +
x2
,b =
1 + cos(y − 2) x 2 /2 + sin 2 z
,c =a−b.
z , b = (1 + tg 2 ), c = a − b 2 . 2
y + x 3 /3
11
5. a = 6. a =
2cos(x − π/6) 1/2 + sin 2 y
9. a =
z2 3 + z 2 /5
,c=
a . b
1 + sin 2 (x + y)
1 b + x, b = cos 2 (arctg ), c = . z c 2 + x − 2x/(1 + x 2 y 2
x 2 x5 x )(x − ), b = x − + , c = a3 + b2 . 2 3! 5! z + x /4 y
7. a = ln (y − 8. a =
, b = 1+
(
sin x 2 − 2y + z xy
), b = cos2 ⎛⎜ x 2 + y ⎞⎟, c = 2a + 4b 2 . z⎠
⎝
5cos(x − π/6) 1/2 + sin 2 x
,b = 2 +
y2 3 + z 2 /7
3 + sin 3 (x 2 + y)
− 3x, c =
a − b2 . b
1 b2 + 2 + π, b = sin (arctg ), c = 10. a = . z c 2 + x − 4x/(1 + x 2 y 2 2
2.5. Сформировать матрицу А размера 7×7 по заданному алгоритму (i – номер строки, j – номер столбца): 1. b ij = 5. b ij =
9. b ij =
1 . i + j −1 (i − j) 2 (i + j) 2
i −2
.
2. b ij =
1 . i+ j i2
3. b ij =
i −1 . i+ j
2i . 7. b ij = . 6. b ij = j 2i + j 10. b ij =
2i +1 . j+ 2
4. b ij =
10i . i+ j
8. b ij =
5i . i+ j
. 3i + j 2.6. Умножить матрицу А на произвольный скаляр, сложить полученную матрицу c единичной, сменить знак у всех элементов матрицы, транспонировать матрицу A, найти ее след. 2.7. Найти произведение четырех элементов матрицы, указанных в табл. 3, полученной при выполнении задания 2.5.
12
Таблица 3 Номер варианта
Элемент 1
Элемент 2
Элемент 3
Элемент 4
столбец строка столбец строка столбец строка столбец
строка
1
3
5
1
6
4
2
6
6
2
7
2
2
4
5
7
3
2
3
2
6
4
6
3
3
5
3
4
5
1
2
7
6
3
1
6
5
4
7
2
5
3
2
7
1
6
3
4
7
5
2
6
4
6
7
2
5
5
3
6
1
3
3
8
5
1
6
4
3
6
2
1
9
1
6
3
4
6
2
5
7
10
6
2
2
7
4
5
3
4
2.8. Используя опции команды Format, представьте число 273, 865 в виде двоичного числа, восьмеричного и шестнадцатеричного. 2.9. Определите значения определенного интеграла из вариантов: π 2
1.
∫ −
π 2
π 2
dx . 1 + cosx
2.
∫
2
4. ln xdx . 1
5
5.
π 4
∫ −
π 2
2 π
2
cos xdx 3
sinx
π⎞ ⎛ 8. costsin ⎜ 2t − ⎟dt . 4⎠ ⎝ π −
3.
∫ −
.
6.
∫
sin
1 x
cosx − cos 2 xdx .
π 2
1 x dx .
2
1
7.
∫ xe
−x
dx .
0
π
π 2
∫
xsin2xdx .
0
−
e
∫ cos
π 2
π
9.
∫ x sinxdx . 3
0
e −1
10.
∫ ln(x + 1)dx . 0
2
2.10. Вычислите значения определенного интеграла для десяти значений верхнего предела интеграла, равномерно распределенных в указанном диапазоне: 13
1. Для H = 0...2*π, при a = 3. 2. Для H = 0...2*π, при a = 3, b = 4. H
H
xsinxdx
∫ 1 − 2acosx + a 2
∫ a 2 − 2abcosx + b 2
0
3. Для H = 0...0,9*π. H
0
4. Для H = 0… 2*π, при a = 3, b = 4. H
x 2dx
0
0
H
6. Для H = 0... 1. H
x 2 dx
∫ (1 − x)3 0
7. Для H = 0...6.
∫
∫ 0
9. Для H = 0…1. H
∫
x 5dx
1− x4 8. Для H = 0…1. 0
H
H 7
x dx 1+ x
dx
∫ ax 4 + 2bx 2 + a
∫ sin 2 x
5. Для H = 0...0,9.
sin 2 xdx
∫
x 5dx
1− x2 10. Для H = 0…1 0
H
x dx
∫
dx
2 2 1 − x4 01− x + 2 1− x 3. Оформите протокол лабораторной работы средствами MathCAD. 0
Содержание отчета 1. Титульный лист. 2. Решение всех задач с комментариями.
Контрольные вопросы 1. Что из себя представляет система MathCAD 11? 2. Каким образом осуществляется формулировка математических задач средствами MathCAD 11? 3. Как можно задать текстовый блок? 4. Что такое «ранжированная переменная»? 5. Каким образом осуществляется управление форматом выводимых данных? 14
Лабораторная работа № 2
Численные методы решения уравнений и систем уравнений. Построение графиков в среде MathCAD Цель лабораторной работы – ознакомиться с основными правилами решения уравнений и систем уравнений численными методами и возможностями пакета MathCAD при построении графиков.
Определение комплексных чисел Решения некоторых уравнений содержат комплексные числа. MathCAD воспринимает комплексные числа в форме a+bi, где a и b – обычные числа. Комплексные числа могут также возникать в результате вычислений, даже если все исходные значения вещественны. Например, если вычислить − 1 , MathCAD возвращает i. При вводе комплексных чисел нельзя использовать i саму по себе для ввода комплексной единицы. Нужно всегда печатать 1i, в противном случае MathCAD истолкует i как переменную. Когда курсор покидает выражение, содержащее 1i, MathCAD скрывает избыточную единицу. Некоторые операции над комплексными числами показаны на рис. 6. r := 5
Θ :=
3π
5 Определим комплексные переменные i := −1
z1 := −1
z2 := r ⋅ e
i⋅Θ
z1 = i
z2 = −1.545 + 4.755i
Выполним некоторые действия z2 z1
= 4.755 + 1.545i 3
z3 := z2
Re( z2) = −1.545
z3 = 101.127 − 73.473i Рис. 6
15
Im( z2) = 4.755
Решение систем линейных уравнений Для решения систем линейных уравнений в системе MathCAD введена функция lsolve(A,B), которая возвращает вектор X для системы линейных уравнений A*X = B при заданной матрице коэффициентов A и векторе свободных членов B. Если уравнений n, размерность вектора B должна быть n, а размерность матрицы A – nxn. Пример решения системы линейных уравнений − 2x1 + 0,24x 2 − 0,06x 3 = 9
0,03x1 − 3,3x 2 − 0,12x 3 = 5
рассмотрен на рис. 7.
0,77x1 + 0,32x 2 − 0,22x 3 = 2 РЕШЕНИЕ СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ A*X=B
⎛ − 2 0.24 − 0.06 ⎞ A := ⎜ 0.03 − 3.3 − 0.12 ⎟ ⎜ ⎟ ⎝ 0.77 0.32 − 0.22 ⎠
Задание коэффициентов системы
⎛9⎞ B := ⎜ 5 ⎟ ⎜ ⎟ ⎝2⎠ X := lsolve ( A , B)
Задание вектора свободных членов
⎛ − 3.873 ⎞ X = ⎜ − 0.69 ⎟ ⎜ ⎟ ⎝ − 23.652 ⎠
Решение системы
Рис. 7
Решение нелинейных уравнений Многие уравнения, например трансцендентные, и системы из них не имеют аналитических решений. Однако они могут решаться численными методами с заданной погрешностью, определяемой переменной TOL (в меню Сервис → Опции рабочей области → Переменные).
16
Для простейших уравнений вида F(x)=0 решение находится с помощью функции root(Выражение, Имя_переменной). Эта функция возвращает значение переменной, при котором выражение дает 0. Функция реализует вычисления итерационным методом, причем можно задать начальное значение переменной. Это особенно полезно, если возможно несколько решений. Тогда выбор решения определяется выбором начального значения переменной. Первое применение этой функции позволяет найти первый корень X1. Для поиска второго корня X2 первый исключается делением F(x) на (x−X1). Соответственно для поиска третьего корня X3 F(x) делится еще и на (x−X2). Пример использования функции приведен на рис. 8. НАХОЖДЕНИЕ КОРНЕЙ КУБИЧЕСКОГО УРАВНЕНИЯ a3 := 2 a2 := −5 3
a1 := 43
Коэффициенты
a0 := −92
2
F( x) := a3⋅ x + a2⋅ x + a1 + a0
Задание полинома
Вычисление действительного корня x := 2 x1 := root ( F( x) , x) x1 = 4.018 Вычисление других корней i := −1
x2 := root ⎛⎜
x := 1 + 1⋅ i
x3 := root ⎡⎢
F( x)
F( x)
, x⎟⎞
⎝ x − x1 ⎠
, x⎤⎥
x2 = −0.759 + 2.35i
x3 = −0.759 − 2.35i
⎣ ( x − x1) ⋅ ( x − x2) ⎦
Рис. 8
Для поиска корней обычного полинома p(x)степени n можно использовать функцию polyroots(V). Она, как показано на рис. 9, возвращает вектор корней многочлена (полинома) степени n, коэффициенты которого находятся в векторе V, имеющем длину, равную n+1. Функцию root можно использовать и в составе функции пользователя, создаваемой специально для решения конкретной задачи. Например, как показано на рис. 10, с ее помощью можно организовать решение уравнения при различных значениях параметра a. 17
НАХОЖДЕНИЕ КОРНЕЙ УРАВНЕНИЯ 4-Й СТЕПЕНИ V := −12
V := 8
0
1
V := −33
V := 25
2
3
V := 41 4
⎛⎜ −1.395 ⎟⎞ 0.01 + 0.524i ⎟ polyroots ( V) = ⎜ ⎜ 0.01 − 0.524i ⎟ ⎜ 0.764 ⎟ ⎝ ⎠ Рис. 9 x
GH( a , x)
root e
1 .. 5
x0
a
a
xa
1 2 3 4 5
0.426 0.326 0.281 0.252 0.233
3
a .x , x
0
xa
3
GH a , xa
1
Рис. 10
Решение систем нелинейных уравнений При решении систем нелинейных уравнений используется специальный вычислительный блок, открываемый служебным словом − директивой Given, имеющей следующую структуру: Given Уравнения Ограничительные условия Выражения с функциями Find и Minerr 18
Рекомендуется дополнять блок проверкой решения системы. В блоке может использоваться одна из следующих функций: Find(v1, …, vn) – возвращает значение одной или ряда переменных для точного решения; Minerr(v1, …, vn) – возвращает значение одной или ряда переменных для приближенного решения. Между этими функциями существует принципиальные различия. Первая функция используется тогда, когда решение реально существует (хотя и не является аналитическим). Вторая функция пытается найти максимальное приближение даже к несуществующему решению путем минимизации среднеквадратической погрешности решения. Ограничительные условия вводятся следующими операторами (табл. 4). Таблица 4 Выражение
Назначение оператора
e1>e2
e1 больше e2
e1<e2
e1 меньше e2
e1≥e2
e1 больше или равно e2
e1≤e2
e1 меньше или равно e2
e1≠e2
e1 не равно e2
e1=e2
e1 равно e2
В решающих блоках для определения условия равенства используется знак логического равенства =, извлекаемый из меню или вводимый комбинацией клавиш Ctrl +. Функции Find и Minerr, как показано на рис. 11, могут использоваться для решения одного уравнения. Для нахождения начальных приближений поиска вещественных корней весьма полезно построить графики кривых, входящих в систему уравнений. Полученные точки пересечения можно использовать для дальнейшего поиска корней. Пример такого решения приведен на рис. 12. При использовании функции Minerr при решении систем нелинейных уравнений нужно проявлять осторожность и обязательно предусматривать проверку решений. Полезно как можно точнее указывать начальное приближение к решению. 19
РЕШЕНИЕ НЕЛИНЕЙНОГО УРАВНЕНИЯ x := 1 Given 5
x := 3
x0 := Find ( x)
x0 :=
x := 1
Задание уравнения в виде логического равенства позволяет найти решение
Given 5
x0 := Find ( x)
3
x
Использовать знак присваивания в блоке Given нельзя. Поэтому система отвечает на попытку решения сообщением об ошибке, выделяя задачу красным цветом
x0 = 1.246
x := 1 Given 5
x
3
x0 := Minerr ( x)
x0 = 1.246
Решение с помощью функции minerr такж позволяет найти решение
Рис.11
Построение графиков в системе MathCAD Для создания графиков в системе MathCAD имеется графический процессор. Для построения графиков используются шаблоны. Их перечень содержит математическая панель Graph.
X-Y Plot − создать шаблон двумерного графика в декартовой системе координат; Polar Plot − создать шаблон графика в полярных координатах; Surface Plot − создать шаблон для построения трехмерного графика; Countour Plot − создать шаблон для графика в виде точек (фигур) в трехмерном пространстве; 3D Scatter Plot − создать шаблон для изображения в виде совокупности столбиков в трехмерном пространстве; Vector Field Plot −создать шаблон для графика векторного поля на плоскости.
20
Построим графики
7 , 6.9 .. 7
x
20
График показывает, что две кривые пересекаются в точках с приблизительными координатами -5 и +5.
0 x x
2
45 20
18
40 60
5
0 x
5
Ищем первое решение при
x
5
y
0
Given 2
y x x0
y x
Find ( x, y )
y0 ( x0)
45
2
45 = 22.72
18
x0
4.72
=
y0 x0
Первое решение
22.72 18 = 22.72
Проверка решения вычислением y Найдем второе решение, введя ограничение x>0 x
5
y
0
Given 2
y x x1 y1 ( x1)
2
45
Find ( x, y ) 45 = 12.28
y x x1 y1 x1
x> 0
18 =
5.72 12.28 18 = 12.28
Второе решение Проверка решения вычислением y
Рис. 12
Построение графиков в декартовой системе координат возможно следующим способом. Вначале необходимо ранжировать аргумент, указав диапазон его изменения и шаг. Это выполняется по правилам, рассмотренным для ранжирования переменных в предыдущей лабораторной работе. Затем надо задать соответствующие функции и ввести шаблон X−Y Plot с помощью меню. Появится шаблон графика с заданной функцией. В 21
средние шаблоны данных нужно поместить имя переменной и имена функций. Если строятся графики нескольких функций в одном шаблоне, то для их разделения следует использовать запятые. Крайние шаблоны данных служат для указания предельных значений абсцисс и ординат, т. е. они задают масштаб графика. Если оставить эти шаблоны незаполненными, то масштабы по осям графика будут устанавливаться автоматически. Чтобы произошло построение графика в автоматическом режиме вычислений, достаточно вывести курсор за пределы графика или нажать клавишу F9. Пример построения графиков показан на рис. 13. 10, 9.99.. 10
x
f( x)
3
sin( x)
3
f1( x)
1562
f2( x)
x
e
4 3 10
1
4 2 10
f( x) f1( x)
x
0
f2( x) 4 1 10
1
10
0 x
0
10
0
5
10
x
Рис. 13
Построение графиков в полярной системе координат производится углом W и модулем радиуса-вектора R(W). График функции строится в виде линии, которую описывает конец радиус-вектора при изменении угла W в определенных пределах, чаще всего от 0 до 2π. Опция Polar Plot выводит шаблон таких графиков в форме окружности с шаблонами данных. Возможно построение в одном шаблоне двух или нескольких графиков. На рис. 14 показан пример построения графика в полярной системе координат.
22
0 , 0.001. π .. 2 . π
W
Rmin
0
Rmax 90
120
R2( W )
1.3. cos ( 5 . W )
1.3
60
1
150
30
0.5
R1 ( W ) R2 ( W )
sin ( 3 . W )
R1( W )
0
180
0
210
330 240
300
270 W
Рис. 14
Возможно построение графика в полярной системе координат с использованием шаблона обычного графика в прямоугольной системе координат. Для этого нужно по оси X установить R(W)*cos(W), а по оси Y − R(W)*sin(W) (рис. 15). W
0 , 0.001. π .. 2 . π
R1( W )
sin ( 3 . W )
1
R1 ( W ) .sin ( W )
0
1
1
0 R1 ( W ) .cos( W )
Рис. 15
23
1
Построение трехмерных графиков позволяет строить поверхности вида Z(X, Y), предварительно представленной матрицей M значений аппликат Z, при этом вводится шаблон графика, левый верхний угол которого помещается в место расположения курсора. В единственный шаблон данных нужно занести имя матрицы со значением аппликат поверхности. Наглядность представления поверхностей в трехмерном пространстве зависит от множества факторов: масштаба построений, углов поворота фигуры относительно осей, применения алгоритма удаления невидимых линий или отказа от него, использования функциональной закраски. Для изменения этих параметров используются операции установки формата графика. Пример построения поверхности показан на рис. 16. ПОСТРОЕНИЕ ПОВЕРХНОСТИ N := 20
(2
f( x, y ) := sin x + y
M
i := 0 .. N 2
)
j := 0 .. N x := −1.5 + 0.15⋅ i i
M
i, j
( i j)
y := −1.5 + 0.15⋅ j
:= f x , y
Рис. 16
Построение трехмерного графика в виде гистограммы, представляющей собой трехмерные столбики, высота которых определяется значениями координаты Z(x, y). Подобные графики широко применяются при представлении сложных статистических данных, например представленных тремя независимыми переменными. Пример построения такой гистограммы показан на рис. 17.
24
ПОСТРОЕНИЕ ТРЕХМЕРНОЙ ГИСТОГРАММЫ
(2 )
f( x, y ) := −sin x ⋅ y M
x, y
x := 0 .. 15
y := 0 .. 15
:= f⎡⎢
( x − 10) ( y − 10) ⎤ , ⎥ 5 ⎣ 5 ⎦
Y, Z)
M
Рис. 17
Порядок выполнения работы 1. Войдите в систему MathCAD. Внимательно ознакомьтесь с описанием лабораторной работы. Выполните некоторые рассмотренные примеры. После завершения изучения описания удалите с листа рассмотренные примеры. 2. Выполните средствами пакета MathCAD последовательность заданий из указанного преподавателем варианта. Решения задач оформите в виде единого документа. Каждую задачу обязательно сопровождать комментариями. 2.1. Определите все корни уравнения. 2. x5 − x − 0.2 = 0 1. x + ln(x + 0.5) − 0.5 = 0 3. x4 +2x3 − x − 1 = 0
4. x3 − 0.2x2 − 0.2x − 1.2 = 0
25
2sin 2 x 3cos 2 x − =0 6. x4 + 0.8 x3 − 0.4 x2 − 1.4 x − 1.2 = 0 3 4 8. x4 − 4.1 x3 + x2 − 5.1 x + 4.1 = 0 7. x2 − sin 5x = 0 9. 1.8x4 − sin 10x = 0 10. x3 − 2x2 + x − 3 = 0 2.2. Составьте программу решения системы линейных уравнений. Выполните проверку решения. 5.
⎧10x1 + x 2 + x 3 = 12 ⎪ 1. ⎨2x1 + 10x 2 + x 3 = 13 ⎪2x + 2x + 10x = 14 2 3 ⎩ 1 ⎧4x1 + 0,24x 2 − 0,08x 3 = 8 ⎪ 2. ⎨0,09x1 + 3x 2 − 0,15x 3 = 9 ⎪0,04x − 0,08x + 4x = 20 1 2 3 ⎩
⎧6x1 − x 2 − x 3 = 11,33 ⎪ 3. ⎨− x1 + 6x 2 − x 3 = 32 ⎪− x − x + 6x = 42 2 3 ⎩ 1 ⎧3x1 − x 2 = 5 ⎪ 4. ⎨− 2x1 + x 2 − x 3 = 0 ⎪− 2x − x + 4x = 15 1 2 3 ⎩ ⎧0,427x1 − 3,210x 2 − 1,307x3 = 2,425 ⎪ 5. ⎨4,270x1 − 0,513x 2 + 1,102x3 = −0,176 ⎪0,012x + 1,273x − 4,175x = 1,423 1 2 3 ⎩
⎧10x1 + x 2 + 2x 3 − 3x 4 = 0 ⎪ ⎪2x1 + 3x 2 + 20x 3 − x 4 = −10 6. ⎨ ⎪3x1 + 2x 2 + x 3 + 20x 4 = 15 ⎪⎩x1 − 10x 2 − x 3 + 2x 4 = 0
26
⎧2x 1 + 3x 2 − 4x 3 + x 4 = 3,1 ⎪ ⎪0,1x 1 − 2x 2 − 5x 3 + x 4 = 2 7. ⎨ ⎪0,15x 1 − 3x 2 + x 3 − 4x 4 = 1 ⎪⎩10x 1 + 2x 2 − x 3 + 2,1x 4 = −4,7 ⎧4,13x 1 + 2,87x 2 − 1,94x 3 + 0,61x 4 = 0,32 ⎪ ⎪1,27x 1 + 7,23x 2 − 0,15x 3 + 1,74x 4 = −4,16 8. ⎨ ⎪0,19x 1 + 2,75x 2 + 3,14x 3 − 0,76x 4 = 2,33 ⎪⎩2,87x 1 + 4,33x 2 − 2,41x 3 − 3,422x 4 = 2,79 ⎧x 1 + 3x 2 − 2x 3 − 2x 5 = 0,5 ⎪ ⎪3x 1 + 4x 2 − 5x 3 + x 4 − 3x 5 = 5,4 ⎪ 9. ⎨− 2x 1 − 5x 2 + 3x 3 − 2x 4 + 2x 5 = 5 ⎪x − 2x + 5x + 3x = 7,5 3 4 5 ⎪ 2 ⎪⎩− 2x 1 − 3x 2 + 2x 3 + 3x 4 + 4x 5 = 3,3
⎧7,9x1 + 5,6x 2 + 5,7x 3 − 7,2x 4 = 6,68 ⎪ ⎪8,5x1 − 4,8x 2 + 0,5x 3 + 3,5x 4 = 9,95 10. ⎨ ⎪4,3x1 + 4,2x 2 − 3,2x 3 + 9,3x 4 = 8,6 ⎪⎩3,2x1 − 1,4x 2 − 8,9x 3 + 8,3x 4 = 1 2.3. Выполните задание: 1. Найдите все корни уравнения x 2 +
25x 2
(5 + 2x )2
−
2. Решите уравнение x 5 + 1 = 0 . 3. Решите уравнение x 4 − 8x + 63 = 0 . 4. Найдите все четыре корня уравнения 15x 4 − 4x 3 − 6x 2 − 4x − 1 = 0 . 5. Решите уравнение 8x 4 + 8x 3 − x − 190 = 0 . 6. Решите уравнение (8x + 7 )2 (4x + 3)(x + 1) = 4,5 . 27
74 =0. 49
2
⎛ x ⎞ 7. Решить уравнение x 2 + ⎜ ⎟ =8. x − 1 ⎝ ⎠
8. Найдите все корни уравнения (x + 1)(x + 2 )(x + 3)(x + 4 ) = 1 . 9. Решите уравнение (x − 4 )3 (x − 5)3 + 2(x − 5)3 + (x − 4 )3 = 0 . 10. Найдите все корни уравнения x 3 + 2x − 5 3 = 1 . 2.4. Найдите все решения для системы уравнений
⎧⎪ y = 2x 3 + 5 1. ⎨ ⎪⎩ y = 3x
⎧⎪ y = x 3 − 2x + 4 2. ⎨ ⎪⎩ y = 2x + 3,6
⎧⎪ y = 2,8x 3 − 3x 3. ⎨ ⎪⎩ y = 2,2x
⎧⎪ y = 2x 3 + 3,8x − 6,2 4. ⎨ ⎪⎩ y = 1,2x − 5
⎧⎪y = 1,18x 3 − 2,8x 5. ⎨ ⎪⎩y = 2,1x − 0,12
⎧⎪ y = 2,1x 3 − 3,3x + 6 6. ⎨ ⎪⎩ y = x + 5,6
⎧⎪ y = x 4 − x 2 7. ⎨ ⎪⎩ y = 0,05x − 0,18
⎧⎪y = −3,51x3 − 6,1x + 2 8. ⎨ ⎪⎩y = 1,08x − 1,9
⎧⎪y = 2,8x3 − 6,2x− 3 9. ⎨ ⎪⎩y = 2x − 0,12
⎧⎪ y = −2,7x 3 + 6,1x 10. ⎨ ⎪⎩ y = −1,8x + 0,51 2.5. Постройте график функции. Модифицируйте график, изменив его масштаб, включить координатную сетку, обозначьте оси координат. Сохранить все варианты построенных графиков. 1. y = − x при x, изменяющемся в диапазоне от –100 до +100. 2. y = x + x − 1 + x + 1 при x, изменяющемся в диапазоне от – 15 до +15. 3. y = x 2 + x − 2 при x, изменяющемся в диапазоне от –25 до +25 4. y = (1 − x ) x + 1 при x, изменяющемся в диапазоне от –10 до +10
28
5. y = x 3 − 3x при x, изменяющемся в диапазоне от –5 до +5 6. y = x 3 − 3x 2 + 2 при x, изменяющемся в диапазоне от – 5 до +5
x⎞ x ⎛ 7. y = 4⎜ cos 4 + sin 4 ⎟ при x, изменяющемся в диапазоне 2 2⎠ ⎝ от – 2π до +2π 8. y = cosx + sinx при x, изменяющемся в диапазоне от – 2π до +2π 9. y = 3 x при x, изменяющемся в диапазоне от –30 до +30 10. y =
2 x3
при x, изменяющемся в диапазоне от –30 до +30
2.6. Постройте график в полярной системе координат
1. R (ϕ) = 8 + 2,8cos(ϕ) для ϕ, изменяющегося в диапазоне 0÷2π.
2. R (ϕ) =
(
3
)
0,09 ϕ + 1 ϕ2 + 2
2 3
для ϕ, изменяющегося в диапазоне 0÷20π.
3. R (ϕ ) = cos (2ϕ ) + cos 2 (2ϕ ) + 1,3 для ϕ, изменяющегося в диапазоне 0÷2π. 4. R(ϕ) = 2 ϕ для ϕ, изменяющегося в диапазоне 0÷20π. 5. R (ϕ) = cos(2ϕ)2 для ϕ, изменяющегося в диапазоне 0÷2π. 6. R (ϕ) = 1,8 + 1,6 cos(ϕ) для ϕ, изменяющегося в диапазоне 0÷2π. 7. R (ϕ ) = cos (2ϕ ) + cos 2 (2ϕ ) + 4,5 для ϕ, изменяющегося в диапазоне 0÷2π. 0,1ϕ 8. R (ϕ) = 3e для ϕ, изменяющегося в диапазоне 0÷20π.
9. R (ϕ) = cos(2ϕ) + cos 2 (2ϕ) − 0,01 для ϕ, изменяющегося в диапазоне 0÷2π.
29
10. R (ϕ) = −9 + 3,6 cos(ϕ) для ϕ, изменяющегося в диапазоне 0÷2π. 2.7. Постройте график функции Y(x) и исследуйте ее поведение в окрестностях точки X0. 1. Y(x) = 3x 3 − 1,8x + 5,8
X0 = 0.
2. Y(x) = x 3 − 3x
X0 = 0.
2 3 3. Y(x) = x − x
X0 = 0.
4. Y(x) = 2,5x 3 + 3,8x + 1
X0 = 0,5.
5. y =
x 2 −1
X 0 = 0.
x2 +1
6. Y(x) = 2x 3 − 4,5x + 3,8
X0 = 0.
7. Y(x) = 2x 4 − 2x 2 + 2
X0 = 1.
8. Y(x) = 2x 3 − 4,5x + 3,8
X0 = 0.
9. Y(x) = x 3 − x 2 − x + 1
X0 = 1.
3 10. Y(x) = 2,1x − 3,1x + 1,1
X0 = 0.
2.8. Постройте график поверхности, заданной девятьюстами точ-
x 2 y2 − . Изками. Поверхность описывается выражением f (x, y ) = 2 3 мените опции, влияющие на вид графика. 2.9. Постройте трехмерную гистограмму по 225 точкам. Функция описывается выражением f (x, y ) = cos(x 3 ⋅ 2y) . 3. Оформите протокол лабораторной работы средствами MathCAD.
Содержание отчета 1. Титульный лист. 2. Решение всех задач с комментариями.
30
Контрольные вопросы 1. Назовите основные способы решения систем линейных уравнений. 2. Какие операторы позволяют осуществить решение систем нелинейных уравнений? 3. Для чего необходимо выполнять проверку решения уравнений? 4. В чем смысл решения уравнений численными методами ? 5. Назовите порядок построения графика в декартовых системах координат. 6. Назовите порядок построения графика в полярной системе координат.
31
Лабораторная работа № 3
Работа с файлами, использование условных функций и программирование в среде Mathcad Цель лабораторной работы – ознакомиться с основными операторами, обеспечивающими работу с файлами данных, организацию вычислений с условными функциями, и изучить основы программирования в среде MathCAD.
Работа с файлами данных Для обмена с внешними программными системами MathCAD имеет специальный тип данных – файловые данные. В сущности, это те же векторы и матрицы, но с элементами, которые могут записываться в виде простых текстовых файлов. Ниже перечислены основные файловые операции. READPRN("Имя_файла"). Эта операция считывает данные в виде матрицы. Функция READPRN возвращает матрицу, значения элементов которой однозначно связаны со значениями элементов файла, или, точнее, каждая строка или столбец возвращаемой матрицы подобны соответствующим строкам или столбцам текстового представления файла. WRITEPRN("Имя_файла"). Эта операция применяется для записи матричного выражения (или матрицы) в файл с указанным именем. Структура файла подобна структуре матрицы. APPENDPRN("Имя_файла"). Эта операция дописывает данные в уже существующий матричный файл. Следует особо отметить, что при работе с векторами и матрицами, имеющими комплексные элементы, эти операции используют расширенные векторы или матрицы, элементы которых – действительные числа. Имя файла включает путь к файлу. Можно задавать как полный путь к файлу, например, С:\Мои документы, так и относительный, имея в виду, что он будет отсчитываться от папки, в которой находится файл с документом MathCAD. Если Вы задаете в качестве ар-
32
гумента просто имя файла, то файл будет записан или прочитан из той папки, в которой находится сам документ MathCAD. На рис. 18 приведены примеры использования операторов для ввода-вывода данных. РАБОТА С ДАННЫМИ МАТРИЧНОГО ТИПА ⎛ −10 ⎞ ⎜ ⎟ x −9 ⎜ ⎟ y = ⎜ −6 ⎟ ⎜ −1 ⎟ WRITEPRN( "d:/dannie.prn" ) := y ⎜ ⎟ ⎝ 6 ⎠ 2
x := 0 .. 4
y := x − 10
Создание файла данных в корневом каталоге диска D ⎛ −10 ⎞ ⎜ ⎟ −9 ⎜ ⎟ Считывание файла данных, r = ⎜ −6 ⎟ создание вектора r ⎜ −1 ⎟ ⎜ ⎟ ⎝ 6 ⎠
r := READPRN( "d:/dannie.prn" )
⎛ −5 7 ⎞ ⎟ ⎝ 2 −9 ⎠
M := ⎜
⎛ 1 + 3i 2 + 4i ⎞ ⎟ ⎝ 2 − 8i 4 − 5i ⎠
Определение матриц
N := ⎜
Запись матрицы в файл
WRITEPRN( "d:/matr.prn" ) := N NN := READPRN( "d:/matr.prn" ) MN := NN + M
⎛ 5 − 2i 5i ⎞ ⎟ ⎝ 2 + 6i 1 + 3i ⎠
⎛ −4 + 3i 9 + 4i ⎞ ⎟ ⎝ 4 − 8i −5 − 5i ⎠
MN = ⎜
A := ⎜
APPENDPRN( "d:/matr.prn" ) := A
⎛ 1 + 3i 2 + 4i ⎞ ⎜ ⎟ 2 − 8i 4 − 5i ⎟ ⎜ NA := READPRN( "d:/matr.prn" ) NA = ⎜ 5 − 2i 5i ⎟ ⎜ 2 + 6i 1 + 3i ⎟ ⎝ ⎠
Определение матрицы Дозапись матрицы A в существующий файл Считывание файла данных, создание матрицы
Рис. 18
Использование функций с условиями сравнения В системе MathCAD существует ряд встроенных функций, у которых возвращаемый ими результат зависит от знака или значения аргумента. Так, при их вычислении производится сравнение аргумента с некоторыми числовыми константами, например с нулем или целыми числами. Ниже представлены такие функции с условиями сравнения. 33
ceil(x) – наименьшее целое, большее или равное x; floor(x) – наибольшее целое, меньшее или равное x; mod(x, y) – остаток от деления x/y со знаком x; angle(x, y) – положительный угол между осью x и радиусомвектором точки с координатами (x,y); Φ(x) – функция Хевисайда – единичного скачка (дает 0 при x<0 и 1 в противном случае); δ(m, n) – функция, именуемая символом Кронекера, возвращающая 1 при m = n и 0 в противном случае. Функцию Хевисайда можно использовать для задания прямоугольного импульса с шириной τ. pulse(t,τ):= Φ(t)-Φ(t-τ). Более широкие возможности дает функция if для создания условных выражений: if(Условие, Выражение 1, Выражение 2). Если в этой функции условие выполняется, то вычисляется выражение 1, в противном случае – выражение 2. Пример использования функции показан на рис. 19. ПРИМЕНЕНИЕ ФУНКЦИИ IF x := 0 , 0.1.. 20 f( x) := sin ( x)
Cиносоидальный сигнал
y ( x) := if( f( x) ≥ 0 , f( x) , −f( x) )
Cигнал двухполупериодного выпрямления Графики функций
f( x)
1
1
0
y ( x) 0
1
0
10
1
20
Рис. 19
34
0
10
20
Использование программных модулей Программные операторы сосредоточены в наборной панели программных элементов (рис. 20). Набор программных элементов весьма ограничен: Add Line – создает и при необходимости расширяет жирную вертикальную линию, справа от которой в шаблонах задается запись программного блока; ← – символ локального присваивания (в теле программного модуля); Рис.21 if – оператор условного выражения; for – оператор задания цикла с фиксированным числом продолжений; while – оператор задания цикла типа "пока" (цикл выполняется, пока выполняется некоторое условие); otherwise – оператор иного выбора (обычно применяется с if ); break – оператор прерывания; continue – оператор продолжения; return – оператор-функция возврата; on error – оператор обработки ошибок. Пример использования программных операторов приведен далее. Оператор Add Line выполняет функции расширения программного блока. Расширение фиксируется удлинением вертикальной черты программных блоков или их древовидным расширением. Оператор внутреннего присваивания ← выполняет функции внутреннего локального присваивания. Например, выражение x←12 присваивает переменной x значение 12. Локальный характер присваивания означает, что такое значение x сохраняет только в теле программы. За пределами тела программы значение переменной может быть неопределенным либо равно значению, которое задается оператором локального := и глобального ≡ присваивания. Пример использования программных блоков приведен на рис. 21.
35
ИСПОЛЬЗОВАНИЕ ПРОГРАММНЫХ БЛОКОВ x := 14
Задано значение x
ln( x) = 2.639
Вычислен натуральный логарифм
x← 5
Локально задано x=5 и вычислен натуральный логарифм от 5.
= 1.609
ln( x)
За пределами программного блока x сохранил значение 14.
x = 14
f( x, y , z) :=
x x + y⋅z
+
y x + y⋅z
f( 5 , 7 , −3) = −0.563 Ff ( x, y , z) :=
+
z
Задание функции обычным способом
x + y⋅z
f( 2 , 5 , 7) = 0.378
as ← x + y ⋅ z
Вычисление значений функции Задание функции программным блоком
x+ y + z as Ff ( 5 , 7 , −3) = −0.563
Ff ( 2 , 5 , 7) = 0.378
Вычисление значений функции
Рис. 21
Оператор создания условных выражений if задается в виде Выражение if Условие Если условие выполняется, то возвращается значение выражения. Совместно с этим оператором часто используются операторы прерывания break и оператор иного выбора otherwise. Оператор for служит для организации циклов с заданным числом повторений. Он записывается в виде for Var ∈ Nmin..Nmax Эта запись означает, что если переменная Var меняется с шагом +1 от значения Nmin до Nmax, то выражение, помещенное в шаблон, будет выполняться. Переменную счетчика Var можно использовать в выражениях программы. Оператор While служит для организации циклов, действующих до тех пор, пока выполняется некоторое условие. Этот оператор записывается в виде while Условие 36
Выполняемое выражение записывается на место шаблона. Оператор otherwise (иначе) обычно используется совместно с оператором if. Его использование поясняет следующая программная конструкция. f( x) :=
1 if x > 0
Возвращает 1, если x>0
−1 otherwise
Возвращает -1 во всех иных случаях
Оператор break вызывает прерывание работы программы всякий раз, как он встречается. Чаще всего он используется совместно с оператором условного выражения if и операторами циклов while и for, обеспечивая переход в конец тела цикла. Оператор continue (продолжения) используется для продолжения работы после прерывания программы. Он также используется обычно совместно с операторами задания циклов while и for, обеспечивая после прерывания возврат в начало цикла. Оператор-функция возврата return прерывает выполнение программы и возвращает значение своего операнда, стоящего следом за ним. Например, в приведенном ниже случае return 0 if x<0 будет возвращаться значение 0 при любом x<0. Оператор on error и функция error . Оператор обработки ошибок позволяет создавать конструкции обработчиков ошибок. Этот оператор задается в виде Выражение_1 on error Выражение_2 Здесь если при выполнении Выражения_1 возникает ошибка, то выполняется Выражение_2. Для обработки ошибок полезна также функция error(S), которая, будучи в программном модуле, возвращает окошко с надписью, хранящейся в символьной переменной S или в символьной константе (любой фразе в кавычках). Далее рассмотрены примеры использования программных блоков. Вложенные циклы позволяют сделать программу компактней. Ниже рассмотрен пример решения с использованием вложенных циклов следующей задачи. Дан массив чисел a1…a10. Вычислить a1+a22+…+a1010. Примеры использования рассмотренных операторов приведены на рис. 22 и 23. 37
ПРИМЕНЕНИЕ ПРОГРАММНЫХ БЛОКОВ Применение условного оператора в программном блоке f( x) := 0 if x > 2 2
4−x
x := −10, −9.99.. 10 5
otherwise
f( x)
0
5
10
0
10
x
Применение оператора цикла for для вычисления суммы и произведения последовательности целых чисел. sum( n ) := s ← 0
prod ( n) := p ← 1
for i ∈ 1.. n
for i ∈ 1 .. n
sum( 10) = 55
s←s+i
prod ( 4) = 24
p ← p⋅ i
sum( 25) = 325
p
Применение оператора цикла while и break для вычисления первого элемента массива, превосходящего заданное число (1,98) и выдачи индекса этого элемента. m := 0.. 2500 t( v , thesh ) :=
Cоздание массива
v := 1 + sin( m) m
Инициализация счетчика
j←0 break if max( v) ≤ thesh
Отслеживание специального случая
while v ≤ thesh j
j← j+ 1
⎛ j⎞ ⎜v ⎟ ⎝ j⎠ ⎛ 8 ⎞ ⎟ ⎝ 1.989⎠
t( v , 1.98) = ⎜
Впервые восьмой элемент массива превосходит заданную величину
Рис. 22
38
4
prod ( 8) = 4.032× 10
ИСПОЛЬЗОВАНИЕ ВЛОЖЕННЫХ ЦИКЛОВ ORIGIN:= 1
⎛ −1.2 ⎞ ⎜ ⎟ ⎜ 1.3 ⎟ ⎜ 2.2 ⎟ ⎜ −2.5 ⎟ ⎜ ⎟ 0.8 ⎟ a := ⎜ ⎜ −0.9 ⎟ ⎜ 1.1 ⎟ ⎜ ⎟ 0.7 ⎜ ⎟ ⎜ 0.6 ⎟ ⎜ ⎟ ⎝ −0.7 ⎠
Задание массива
s :=
ss ← 0 for i ∈ 1 .. 10 p←1
Вычисление суммы ряда
for j ∈ 1 .. i p ← p⋅a
i
ss ← ss + p s = 53.1043113309
ss Рис. 23
Порядок выполнения работы 1. Войдите в систему MathCAD. Внимательно ознакомьтесь с описанием лабораторной работы. Выполните некоторые рассмотренные примеры. После завершения изучения описания удалите с листа рассмотренные примеры. 2. Выполните средствами пакета MathCAD последовательность заданий из вариантов, указанных преподавателем, формируя единый документ. Каждую задачу обязательно сопровождать комментариями. 2.1. Выполните задание из приложения А. 2.2. Выполните задание из приложения Б. 2.3. Используя условную функцию if, постройте график ступенчатой функции из приложения В.
39
2.4. Используя программный модуль, решите задачу из Приложения Г. 2.5. Используя программный модуль, решите задачу из Приложения Д. 2.6. Используя подпрограммы, решите задачу из Приложения Е.
Содержание отчета 1. Титульный лист. 2. Решение всех задач с комментариями
Контрольные вопросы 1. Перечислите основные операторы для работы с файлами данных. 2. Напишите структуру оператора условия if. 3. Назовите основные программные операторы MathCAD. 4. Какие операторы позволяют организовать циклы с неизвестным количеством повторений ? 5. Какие операторы позволяют организовать циклы с известным количеством повторений? 6. Каким образом можно организовать вложенные циклы ?
40
Приложения к лабораторной работе № 3 ПРИЛОЖЕНИЕ А Сформировать массив чисел по выражению, заданному в таблице. Записать значения элементов массива в файл с указанным именем. Сосчитать массив из записанного файла и умножить все его элементы на указанный скаляр. Номер варианта
Длина вектора
Выражение
Скаляр
Имя файла
1
8
i i +1
2,5
first
2
7
1 i +1
−2,7
second
3
9
5 i
3,6
third
4
8
10 i +1
3,2
fourth
5
7
1 2i
−4,3
fifth
6
9
1 2i + 1
2,8
sixth
7
8
5 2i + 1
−1,7
seventh
8
7
3 0,5i + 1
3,9
eighth
9
9
1 0,3i + 3
−2,4
ninth
10
6
1 0,7i + 1
3,5
tenth
41
ПРИЛОЖЕНИЕ Б Сформировать матрицу размером и по выражениям, заданным в таблице. Записать значения элементов этой матрицы в файл. Найти максимальный элемент. Обнулить матрицу путем умножения на 0. Сосчитать значения матрицы из файла и вывести ее на экран. Номер варианта
Размер матрицы
Выражение
Имя файла
1
4х4
a i, j = (i + 1) + ( j − 1)
prima
2
4х5
a i, j = i ⋅ j − i
seconda
3
3х5
a i, j = 2 ⋅ i + j
tercia
4
5х3
a i, j = (i + j) + (i − j)
quarta
5
3х3
a i, j = (i + j) 2
quinta
6
4х3
a i, j = (i + j) 3 − 1
sexta
7
3х4
a i, j = (i + j) 5 + 2
septima
8
4х4
a i, j = (i + j) 4 − 2
octava
9
5х4
a i, j = (i + j) 7 + 2
nonan
10
5х5
a i, j = (i + j) 3 + 1
desima
42
ПРИЛОЖЕНИЕ В
⎧ − x при x < 0 1. y(x) = ⎨ 2 при x ≥ 0 ⎩− x ⎧ 1 ⎪ 2 при x < −1 ⎪⎪ 2x при − 1 ≤ x ≤ 2 2. y(x) = ⎨x ⎪ 4 при x > 2 ⎪ ⎪⎩ ⎧⎪ x 2 при x < 0 3. y(x) = ⎨ 4 ⎪⎩− x при x ≥ 0
⎧− x − 1 ⎪ x +1 ⎪ 4. y(x) = ⎨ ⎪− x + 1 ⎪⎩ x − 1
при x < −1 при − 1 ≤ x ≤ −0
⎧− 3x − 1 ⎪− x + 6 ⎪ 5. y(x) = ⎨ ⎪ x+4 ⎪⎩ 3x − 2
при
−0 ≤ x ≤1
при
x >1
при x ≤ −2 при − 2 ≤ x ≤ 1 при при
1≤ x ≤ 3 x>3
⎧ − 1 при x < −1 ⎪ 6. y(x) = ⎨ x при − 1 ≤ x ≤ 1 ⎪ 1 при x > 1 ⎩
⎧⎪− x 2 7. y(x) = ⎨ 3 ⎪⎩− x
при x < 0 при x ≥ 0
⎧ − x при x < −1 ⎪ 8. y(x) = ⎨1 при − 1 ≤ x ≤ 1 ⎪ x при x > 1 ⎩
43
⎧ 1 ⎪ − 2 + 1 при x < −1 ⎪⎪ 2 x 9. y(x) = ⎨x + 1 при − 1 ≤ x ≤ 2 ⎪ 5 при x > 2 ⎪ ⎪⎩ ⎧ x +1 ⎪− x − 1 ⎪ 10. y(x) = ⎨ ⎪ x −1 ⎪⎩− x + 1
при
x < −1
при − 1 ≤ x ≤ −0 при при
−0 ≤ x ≤1 x >1
44
ПРИЛОЖЕНИЕ Г Вычислите: 100
1.
1
∑ i2 i =1
50
2.
1
∑ i3 i =1
128
3.
1
∑ i3 i =1
120
4.
1 i i =1
∑ 9
5.
1
∑ i5 i =1 39
6.
1
∑ (2i + 1)2 i =1
(− 1)i +1 ∑ i(i + 1) i =1 12
7.
25
8.
(− 1)i
∑ i(2i + 1) i =1
(− 1)i +1 ∑ i(i + 1)(i + 2) i =1 90
9.
5
10.
(− 1)i +1
∑ 4 i + 5i + 2 i =1
45
ПРИЛОЖЕНИЕ Д Вычислите сумму ряда с заданной точностью ε. Считайте, что требуемая точность достигнута, если вычислена сумма нескольких первых слагаемых и очередное слагаемое оказалось по модулю меньше, чем ε. Укажите количество учтенных слагаемых. 1. Для x = 1,28 и ε = 0,000001 2. Для x = 3,51 и ε = 0,000001 3. Для x = 1,21 и ε = 0,000001 4. Для x = 2,47 и ε = 0,000001
∞
1
∑ x 3k 2
k =1 ∞
1
∑ x2 + k3
k =1 ∞
x2
∑ k3 2
k =1 ∞
.
x
3 k =1 k
.
∞
x
∑ k3 + k
k =1
8. Для x = 1,09 и ε = 0,000001
.
2 k =1 x + k
5. Для x = 3,11 и ε = 0,000001 ∑
7. Для x = 2,01 и ε = 0,000001
.
1
∑ ∞
6. Для x = 1,85 и ε = 0,000001
.
x +1
.
∑
(− 1)k x k
∑
(− 1)k (k + 1)x k
∞
k =1 ∞
k
3k
k =1 ∞
( − 1)k x k 9. Для x = 3,12 и ε = 0,000001 ∑ 2 k =1 (k + 1) 10. Для x = 0,89 и ε = 0,000001
∑ x (k ) . ∞
k =1
46
.
2
.
.
ПРИЛОЖЕНИЕ Е 100 50
1. Вычислить
1
∑∑ i + j2 . i =1 j =1
∑∑ sin(i3 + j4 )
100 60
2. Вычислить
i =1 j=1
j − i +1 i =1 j=1 i + j 100 i 1 4. Вычислить ∑ ∑ i =1 j=1 i + 2 j 100100
3. Вычислить ∑ ∑
100
5. Для x = 1,23 вычислить
∑ k k x 2k
k =1
50 50
6. Для x = 1,05 вычислить
x+i j i =1 j=i
∑∑ 50 50
7. Для x = 1,05 вычислить 10
8. Вычислить
x+i j i=1 j=i
∑∑
15
∑i ∑ (i − j)2 i =1
3
j =1
20 20
9. Вычислить
j−i + 2 i + 2j i =1 j=1
∑∑
∑∑ cos(i 2 + j3 ) 50 10
10. Вычислить
i =1 j =1
47
Лабораторная работа №4
Символьные вычисления Цель лабораторной работы – ознакомиться с основными правилами использования символьного процессора MathCAD 11. Операции, относящиеся к работе символьного процессора, содержатся в подменю позиции Symbolics главного меню. Они выполняются в командном режиме. Символьные вычисления можно осуществлять в двух различных режимах: – с помощью команд главного меню, расположенных в кнопке Symbolics;
– с помощью оператора символьного вывода →, ключевых слов символьного процессора и обычных формул. Первый способ более удобен, когда требуется быстро получить какой-либо аналитический результат для однократного использования, не сохраняя сам ход вычислений. Второй способ более нагляден, так как позволяет записывать выражения в традиционной математической форме и сохранять символьные вычисления в документах MathCAD. Кроме того, аналитические преобразования, проводимые через меню, касаются только одного, выделенного в данный момент выражения. Соответственно, на них не влияют формулы, находящиеся в документе выше этого выделенного выражения. Рассмотрим оба типа символьных вычислений на примере разложения на сомножители выражения sin(2x) . Для выполнения символьных вычислений первым способом необходимо: 1. Ввести выражение sin(2x) . 2. Выделить его целиком (как показано на рис. 24), 3. Выбрать в главном меню пункты Symbolics|Expand (Символика|Развернуть). После этого результат разложения появится в рабочем поле чуть ниже в виде еще одной строки (рис. 25).
48
Рис. 25
Рис. 26
Второй способ символьных преобразований реализуется следующим образом: 1. Ввести выражение sin(2x ) . 2. Нажать кнопку expand (развернуть) на панели Символика, 3. Ввести в местозаполнитель после появившегося ключевого слова expand (рис. 26, слева) имя переменной x либо нажать клавишу , чтобы просто удалить местозаполнитель. 4. Ввести оператор символьного вывода →, 5. Нажать клавишу <Enter> либо просто щелкнуть мышью за пределами выражения.
Рис. 27
49
Чтобы символьные операции выполнялись, процессору необходимо указать, над каким выражением это должно проводиться, т. е. выделить выражение. Для ряда операций следует не только указать выражение, к которому она относится, но и наметить переменную, относительно которой выполняется символьная операция. В этом случае само выражение не выделяется, так как ясно, что если маркер ввода выделяет переменную какого-либо выражения, то это выражение уже отмечено наличием в нем выделяемой переменной. Рассмотрим основные алгебраические вычисления в MathCAD.
Символьная алгебра Упрощение выражения. Основные алгебраические и тригонометрические упрощения выбранного выражения выполняются выбором команды Simplify (Упростить). При этом выполняются арифметические преобразования, сокращаются общие множители, используются основные тождества для тригонометрических и обратных функций и упрощаются квадратные корни и степени. Перед выбором команды Simplify необходимо выделить синей рамкой упрощаемое выражение или его часть. Упрощению могут быть подвергнуты как все выражения целиком, так и его части (например, только числитель дроби). Можно упрощать выражения, содержащие массивы, например, суммы или произведения матриц. x
3
2 4. x
6. x
x
2
a. b a
4i3 35 !
3
(x
3
2 2. x
упрощается до
(x
x
21 )
2)
1
a. b
a
1
2. x
a. b
a. b 4
15
упрощается до
b
b
4
1
. a. a
1
4
b
4
b
cos( α )
(2
cos
α 2
3i )2 упрощается до
упрощается до упрощается до
2 . cos
5
1. 2
α
2
cos
1. 2
α
52i
103331479663861449296666513375232000000
50
Разложение выражения. С помощью команды Expend (Развернуть) можно разложить все степени и произведения сумм в выделенном выражении. Если выражение – дробь, числитель будет разложен, и выражение будет представлено как сумма дробей. Синусы, косинусы и тангенсы сумм переменных, или целого числа, умноженного на аргумент, будут разложены, насколько возможно, в выражения, включающие только синусы и косинусы одиночных переменных. Примеры этой операции были рассмотрены на рис. 19, 21. Разложение выражений в ряды позволяет разложить выражение в ряд Тейлора с остаточным членом в форме Пеано. Чтобы использовать эту команду, необходимо:
− выделить переменную в функции или выражении, по которой требуется найти разложение; − выбрать команду Переменная (Разложить в ряд). При этом диалоговое окно запросит порядок остаточного члена. Это определит число членов формулы. Ответы, которые получаются с помощью этой команды, используют для остаточного члена обозначение O. Прежде чем использовать разложение для дальнейших вычислений, следует удалить этот остаточный член. Пример разложения функции e x − a приведен на рис. 27.
x−a
e
exp(−a) + exp(−a) ⋅ x +
1 2
2
⋅ exp(−a) ⋅ x +
1 6
3
( 4)
⋅ exp(−a) ⋅ x + O x
Рис. 27
Разложения выражения на множители. Использование команды Factor (Разложить на множители) позволяет разложить выражение на множители выбранное выражение. Если выражение представляет собой целое число, то MathCAD будет пытаться преобразовать выражение в произведение. Эта команда будет объединять сумму дробей в одну дробь и будет упрощать многоэтажную дробь с несколькими дробными чертами. Пример использования команды приведен на рис. 28.
51
y.( x
x x
2
y
2
x
375849581
4
y) y
4
2
factor , x
1 (y
x)
( 89 ) . ( 4223029) Рис. 29
Приведение подобных слагаемых. Для объединения слагаемых, содержащих одинаковые степени выделенного подвыражения необходимо пользоваться командой Collect (Собрать). Выбираемое подвыражение должно быть простой переменной, либо встроенной функцией вместе с аргументом. Пример приведен на рис. 29. 3
2
(2 )
2
x − 2⋅y⋅a⋅x − (2 − a) ⋅x + 3⋅a⋅y⋅x + 3⋅y⋅ a − 2 ⋅x − 12
(2 )
x + (−2 + a − 2⋅y⋅a) ⋅x + ⎡⎣3⋅y⋅ a − 2 + 3⋅y⋅a⎤⎦ ⋅x − 12 3
2
Приведение подобных членов относительно x
Рис. 30
Разложение на элементарные дроби. Для того, чтобы преобразовать выражение в сумму элементарных дробей, необходимо: − выделить переменную в знаменателе выражения; − выбрать команду Symbolics|Variable|Convert to Partial Fraction Символика|Переменная|Разложить на элементарные дроби. При этом символьный процессор будет пытаться разлагать знаменатель выражения на линейные или квадратичные множители, имеющие целочисленные коэффициенты. Если это удается, он будет разлагать выражение в сумму дробей с этими множителями в качестве знаменателя. Все константы в выделенном выражении должны быть целыми числами или дробями. MathCAD не будет разлагать выражение, которое содержит десятичные точки. Пример приведен на рис. 30.
52
5. x x
2. x
3
3. x
2
10
9. x
2
23 18
( 15. ( x
32 3) )
( 3. ( x
36 3) )
( 5. ( x
2) )
Рис. 30
Нахождение коэффициентов полинома. Для того, чтобы выражения перезаписать в виде полиномов от выделенной переменной или относительно подвыражения, необходимо: − выделить переменную или функцию, относительно которой требуется разложить выражение в полином; − выбрать команду Polynomial Coefficients (Коэффициенты полинома ). MathCAD возвращает вектор, содержащий коэффициенты требуемого полинома в порядке возрастания степеней. На рис. 31 приведен пример нахождения коэффициентов полинома. 9
8
2 3
a ⋅x − 2⋅x + (a − 1) ⋅x + 3⋅a
⎛ 3⋅a ⎞ ⎜ ⎟ −3 + a ⎜ ⎟ 0 ⎜ ⎟ ⎜ 2 ⎟ ⎝ a ⎠
Нахождение коэффициентов относительно степеней x
2
−6⋅sin(x) + sin(x) − (2 − a) ⋅sin(x)
⎛ 0 ⎞ ⎜ −8 + a ⎟ ⎜ ⎟ ⎝ 1 ⎠
Нахождение коэффициентов относительно степеней sin
Рис. 31
Замена переменных. Для замены выделенным выражением заданной переменной необходимо: − выделить выражение, которое будет заменять переменную; 53
− скопировать его в буфер обмена, выбирая команду Copy (Копировать) из меню Edit (Правка); − выделить переменную, которую нужно заменить, и выбрать Substitute (Заменить) из меню Symbolic. Пример, иллюстрирующий замену переменных, приведен на рис. 32.
(
2
a⋅ x
2
)
sin k ⋅ x + b ⋅ x
(
2
4
)
2
sin k ⋅ a ⋅ x + b ⋅ a ⋅ x Рис. 32
Вычисление сумм и произведений. Для вычисления символьно конечной или бесконечной суммы или произведения необходимо: − ввести выражение для суммы или произведения; − в зависимости от желаемого стиля символьных вычислений выбрать команду Symbolics|Simplify (Символика|Упростить) или ввести оператор символьного вывода →. Примеры нахождения конечных и бесконечных сумм и произведений приведены на рис. 33. ∞
∑
1
n
x n
simplify → e
2
⋅x
30
∑
n = 0 2 ⋅ n! ∞
∏
1 3
i=0
simplify → 0
n =1 n + 1 Рис. 33
54
i
2 simplify → 2147483647
Математический анализ Дифференцирование. Чтобы аналитически продифференцировать выражение по некоторой переменной, выделите в нем эту переменную и выберите команду Symbolics|Variable|Differentiate (Символика|Переменная |Дифференцировать). Последовательное многократное выполнение этих действий позволяет получить производные более высоких порядков. На примере рис. 35 показано получение первой и второй производных функции.
sin ⎛⎜
1⎞
−sin
⎟ ⎝ x⎠
2⋅
2
sin 3
x
x
Рис. 34
Неопределенные интегралы. Для использования символьного оператора вычисления неопределенного интеграла: − вставьте оператор неопределенного интеграла и заполните поля ввода его параметров; − заключите выражение в выделяющую рамку; − введите символ →. Примеры нахождения неопределенных интегралов приведены на рис. 35. ⌠ ⎮ ⎮ ⎮ ⌡
x 2
dx →
2⋅ x − 3⋅ x− 2
1 10
⋅ ln( 2 ⋅ x + 1) +
2 5
⋅ ln( x − 2)
sin ( k ⋅ x) ⋅ ln( x) −1 k
⋅ cos ( k ⋅ x) ⋅ ln( x) +
1 k
⋅ Ci( k ⋅ x) +
1 2
Рис. 35
55
⋅
i k
⋅π−
1 2
⋅
i k
⋅ π ⋅ csgn ( k ⋅ x)
Возможно интегрирование без использования символьного оператора вычисления неопределенного интеграла. Для этого: − выделите переменную, по которой ведется интегрирование; − выберите пункт меню Integrate (Интегрировать). Определенные интегралы. Для использования символьного оператора вычисления определенного интеграла: − введите знак определенного интеграла и заполните поля ввода для пределов интегрирования и подынтегрального выражения; − заполните поле ввода позади «d». Таким образом будет задана переменная интегрирования; − введите символ →. Если символьное интегрирование выполнено успешно и пределы интегрирования – целые числа, дроби или точные константы, подобно π, процессор выдает точное значение интеграла. Если подынтегральное выражение или один из пределов содержит десятичную точку, символьный ответ будет числом, отображаемым с двадцатью значащими цифрами. Пример нахождения определенных интегралов приведен на рис. 36. ∞
1
∞
dx
x 1 0
1
e x
x 3
2. exp ( 1 )
dx
1 Рис. 36
Пределы. В Mathcad PLUS есть три оператора вычисления пределов. Они могут быть вычислены только символьно. Чтобы использовать операторы, вычисляющие пределы, необходимо: − вызвать оператор нахождения соответствующего предела и заполнить все поля ввода; 56
− заключить выражение в выделяющую рамку; − ввести символ →. Примеры нахождения пределов показаны на рис. 37.
lim x→ ∞
3 ⎡3 2⎤ ⎣ ( x + 1) + ( x − 1) ⎦ → ∞
x
e −1
lim x→ e + x − e
→∞
x
e −1
lim x→ e − x − e
→ −∞
Рис. 37
Символьное решение уравнений Решение уравнения относительно переменной. Для этого: − введите выражение; − выделите переменную, относительно которой нужно решить уравнение, приравнивающее выражение нулю; − выберите функцию меню Variable|Solve (Переменная|Решить). MathCAD решит уравнение относительно выделенной переменной и вставит результат в рабочий документ. Если переменная возводилась в квадрат в первоначальном уравнении, при решении можно получить два ответа. MathCAD отображает их в виде вектора. Можно решать неравенства, использующие символы <, >, ≤ и ≥. Решения для неравенств будут отображаться в терминах булевых выражений MathCAD. Если имеется более одного решения, MathCAD помещает их в вектор. В Mathcad булево выражение типа x < 2 имеет значение 1, если оно истинно, и 0, если оно ложно. Таким об57
разом, решение « x – меньше, чем 2, и больше, чем -2», можно было бы представить выражением (x < 2)·( −2 < x) (рис. 38). sin ( 3 . x ) cos ( 2 . x )
1. 2
π
1. π 10 1
asin
x
3
5. x
8. x
2
4
1.
5
4
( x 2 ) . ( 1< x )
4> 0 Рис. 38
В примерах нахождения корней уравнений, приведенных на рис. 39, обратите внимание на то, что нет никакой необходимости приравнивать выражение нулю. Если MathCAD не находит знака равенства, он предполагает, что требуется приравнять выражение нулю. 3. x
5. x
2
6
5
1.
6
6
5
1.
6
6
97 97
0 1
x. ( x
2
24 ) Рис. 39
58
x
1
5
Порядок выполнения работы 1. Войдите в систему MathCAD. Внимательно ознакомьтесь с описанием лабораторной работы. Выполните некоторые рассмотренные примеры. После завершения изучения описания удалите с листа рассмотренные примеры. 2. Выполните средствами пакета MathCAD последовательность заданий из вариантов, указанных преподавателем, формируя единый документ. Каждую задачу обязательно сопровождать комментариями. 2.1. Выполнить задание из приложения А. 2.2. Выполнить задание из приложения Б. 2.3. Выполнить задание из приложения В. 2.4. Выполнить задание из приложения Г. 2.5. Выполнить задание из приложения Д. 2.6. Выполнить задание из приложения Е. 2.7. Выполнить задание из приложения Ж. 2.8. Выполните задание из приложения И. 3. Оформите отчет.
Содержание отчета 1. Титульный лист. 2. Решение всех задач с комментариями.
Контрольные вопросы 1. Перечислите основные возможности символьной математики. 2. Каким образом можно задать упрощение выражения? 3. Каким образом можно получить значение числа π с точностью 25 знаков после запятой? 4. Каким образом можно выполнить разложение по степеням переменной ? 5. Каким образом можно найти неопределеный интеграл от выражения ? 6. Каким образом можно решить уравнение?
59
Приложения к лабораторной работе № 4 ПРИЛОЖЕНИЕ А Для вариантов 1−6 − упростите выражение; для вариантов 7−10 − разложите на множители выражение. 1.
2.
3.
x x 2 + y2
−
y(x − y )2 x 4 − y4
x + x 2 − 4x 2
x − x − 4x
−
n + 2 + n2 − 4 2
x − x 2 − 4x x + x 2 − 4x +
n+2− n −4
n + 2 − n2 − 4 n + 2 + n2 − 4
⎛ x − x − a2 x + x − a2 − : ⎜⎜ x − a 2 ⎜⎝ x + x − a 2 x − x − a2 x
4.
1 x2
5.
x+
+1
1 x2
+1
:
⎞ ⎟ ⎟⎟ ⎠
1 x 1,5 − 1
x 2 + 4x + 4 + x 2 − 2x + 1 + x 2 − 6x + 9
6.
7. a 4 + 4b 4
8. (x + 1)(x + 3)(x + 5)(x + 7 ) + 15 9.
3
3 3 3 3 3 a 2 b 4 + b 2 c 4 + a 4 c 2 − ⎛⎜ c 2 b 4 + a 2 c 4 + a 4 b 2 ⎞⎟ ⎝ ⎠
10. y 3 (a − x ) − x 3 (a − y ) + a 3 (x − y )
60
ПРИЛОЖЕНИЕ Б Найдите пределы: 1.
lim x →∞
3 x2⎛
⎞ 2 2 ⎜ x + 1 − x − 1 ⎟. ⎝ ⎠
1 − cos 2 x 2. lim x → 0 xsin2x 1 − sin 3. lim x → π
x 2
x x⎞ x⎛ cos ⎜ cos − sin ⎟ 2⎝ 4 4⎠
1 + sinx − 1 − sinx tgx
4. lim x → 0 5. lim x → −1
π − arccosx x +1
⎛ x 2 − 2x + 1 ⎞ ⎟ 6. lim x → ∞ ⎜ 2 ⎜ x − 4x + 2 ⎟ ⎠ ⎝ 7. lim x → 0
.
x
e x − e−x sinx
1⎞ 2⎛ 8. lim x → ∞ x ⎜1 − cos ⎟ x⎠ ⎝ 9. lim x → 0
lncosx x2 sinx ⎛ sinx ⎞ x − sinx
10. lim x → 0 ⎜ ⎟ ⎝ x ⎠
61
ПРИЛОЖЕНИЕ В Решите уравнения 1.
x + 4 x = 12
2.
a 2 − x + b2 − x = a + b
3. 4.
4 x + x2 + x
2 2 + 4 − x2
−
−
1 x − x2 + x
1 2 − 4 − x2
=
3 x
=
1 x
5. x 2 + 11 + x 2 + 11 = 42 3 6. 3 x + 2 x 2 = 3
7.
a + x −3 a + x = 0
8.
x+a =a− x
9.
2x + 1 + x − 3 = 2 x
(
)
lg 35 − x 3 =3 10. lg(5 − x )
62
ПРИЛОЖЕНИЕ Г Решите тригонометрическое уравнение 1 . cos(cosx ) =
3 2
2. sinx − cosx = 4sinxcos2 x
3x =1 2 4. sin3x + sin2x = msinx 3. 2cosx − cos
5. cosx 2 =
1 2
6. 16sin 5 x = sin5x + 5sinx 7. 1 + cos6x = 32cos 6 x 8. sin 6 x + cos 6 x = a
(
)
9. tg x 2 − x ctg2 = 1 10. tgx + ctgx =
4 3
63
ПРИЛОЖЕНИЕ Д Найдите производную 1. y = 2. z = 3. y =
x sinx + cosx
1 t2 + t +1
2x 4 b2 − x 2
4. y = tg
x 2
1 5. y = e lnx
6. y = 7. y =
1 xx
2cosx cos2x
8. y = x 3arctgx 3 9. y = x 1 + x 2 sinx 10. y = 10 xtgx
64
ПРИЛОЖЕНИЕ Е Найдите неопределенный интеграл 1.
xdx
∫
2 + 4x
dx
2.
∫ (2 + x )
3.
∫e
4.
∫
5.
∫
6.
7.
∫
x
1+ x
sin 2 xdx
dx 9x 2 − 6x + 2 xdx 1 + 2x
dx
(1 + x 2 )4 xdx
∫ x 3 −1 dx
8.
∫ (x + 1)2 (x 2 + 1)
9.
∫ sin
10.
4
xdx
1 + sinx
∫ 1 − sinx dx
65
ПРИЛОЖЕНИЕ Ж Найдите определенный интеграл 3
1+ x2
∫
1.
x2
1 1
2.
2 3 ( ) dx 1 − x ∫ 0 a
3.
∫x 0 1
5.
dx
∫x+ 0 1
4.
dx
∫
(
2
a2 − x2
1 − x 2 dx
x 2 dx
0 1+ x − ln2
∫
6.
)
2 3
1 − e 2x dx
0
8
7.
x dx
∫
1+ x
3 1
8.
0 π
9.
x dx
∫ 1+ x ∫ 0
x sin 6 dx 2 π 2
10.
dx
∫ 2cosx + 3 0
66
ПРИЛОЖЕНИЕ И Разложите функцию в ряд Тейлора, ограничившись четырьмя членами ряда. Постройте в общей системе координат графики исходной функции и функции, эквивалентной полученному ряду. 1. y = sin 2. y =
πx 4
e x + e−x 2
3. y = x 2 e x 4. y = сos(x + α) x 5. y = e sinx
6. y = ln(1 + e x ) 7. y = e
cosx
8. y = cos n x 9. y = −lncosx 10. y = (1 + x )x
67
Список литературы 1. Гурский, Д. Вычисления в MathCAD 12 / Д. Гурский, Е. Турбина – СПб. : Питер, 2006. – 544 с. 2. Кирьянов, Д. В. MathCAD 12. – СПб. : БХВ-Петербург, 2004. – 576 с. 3. Черняк, А. А. Высшая математика на базе MathCAD. Общий курс / А. А. Черняк, Ж. А. Черняк, Ю. А. Доманова. – СПб. : БХВПетербург, 2004. – 608 с.
68
ПРИЛОЖЕНИЕ А Сообщения об ошибках в системе MATHCAD (часто встречающиеся у начинающих пользователей) Ошибка
Перевод
Вероятная причина
Возможные пути устранения
1
2
3
4
Сообщения об ошибках в численных вычислениях Arguments in function definitions must be names
Аргументы в определениях функции должны быть именами
Выделенное определение функции содержит неправильный перечень аргументов
В списке аргументов должны быть правильно поименованы переменные или список имен необходимо отделить запятыми
A "Find" or "Minerr" must be preceded by a matching "Given"
Find или Minerr должны предваряться ключевым словом Given
Эта ошибка выделяет функцию Find или Minerr при их несогласованности с Given
Каждый вычислительный блок, который заканчивается функцией Find или Minerr, должен начинаться с ключевого слова Given
Can't evaluate this function when its argument less than or equal to zero
Невозможно вычислить эту функцию, когда ее аргумент меньше или равен нулю
Ошибка может заключаться в использовании неположительных данных на графиках, построенных в логарифмическом масштабе
Отрицательные числа и ноль не могут быть расположены на логарифмических осях. Смените тип осей графика или постройте его для других значений
66
Продолжение прил. А 1
2
3
4
Can't converge to a solution
Не сходится к решению
Численный метод расходится (не может найти решения)
Убедитесь, что операция не применяется к функции в области непосредственной близости точки ее сингулярности (деления на ноль). Попробуйте поменять параметры численного метода (например, начальное приближение). Попробуйте увеличить константу TOL, т. е. осуществить поиск решения с худшей погрешностью. Попробуйте поменять численный алгоритм, если это возможно (вызвав контекстное меню нажатием на месте ошибки правой кнопки мыши)
Could not find a solution
Невозможно найти решение
Численный метод расходится (не может найти решения)
См. "Can't converge to a solution"
Can't find the data file you're trying to use
Невозможно найти файл, который вы пытаетесь использовать
Невозможно найти файл данных или другой тип файла, к которому вы обращаетесь
Удостоверьтесь, что такой файл существует в указанном месте
Can't put a ":=" inside a solve block
Нельзя помещать" :=" внутрь вычислительного блока
Внутри вычислительного блока не должно быть формулировки присваивания. Он должен содержать только булевы выражения
Используйте панель с булевыми операторами
67
Продолжение прил. А 1
2
3
Can't divide by zero
Деление на ноль невозможно
Где-то в программе или внутри численного метода возникло деление на ноль
Invalid format
Недопустимый формат
Аргументы этой функции могут быть некорректны
Must be positive
Должен быть положительным
Невозможно вычислить функцию, когда ее значения меньше или равны нулю
Must be real
Должно быть действительным
Это значение должно быть действительным. Его мнимая часть должна быть нулем
No solution found
Не найдено решение
68
4 Найдите место деления на ноль и устраните его. Попробуйте поменять параметры численного метода, константы точности или сам численный алгоритм Если Вы работаете со встроенными функциями, то щелкните левой кнопкой мыши на имени функции и вызовите подсказку с помощью клавиши <Р1> Это сообщение может касаться построения X−Y или полярных графиков с логарифмическими осями. Отрицательные числа или ноль не могут располагаться на логарифмических осях Примером таких выражений могут служить нижний и верхний индексы, решения дифференциальных уравнений, углы Если Вы используете встроенные функции, то щелкните левой кнопкой мыши на имени функции и нажмите клавишу для того, чтобы быть уверенным в корректности использования функции Однако решение может просто не существовать
Продолжение прил. А 1
The expression to the left of the equal sign cannot be defined
The number of rows and/or columns in these arrays do not match
The number of rows and/or columns in these arrays do not match
2
3
4
Выражение слева от знака равенства не может быть определено
В левой части находится чтото, что не является допустимым определяемым выражением
В левой части можно разместить одно из следующих определений: • имя переменной; • имя переменной с верхним или нижним индексом; • явный вектор или матрицу; • имя функции с аргументами f (х, у). Любые другие выражение не допустимы
Число рядов и/или столбцов в этих массивах не согласовано
Попытка произвести матричные или векторные операции над массивами, размеры которых не совпадают
Например, сложение двух матриц разного размера не допустимо. Матричное умножение требует, чтобы число столбцов первой матрицы совпадало с числом строк второй
Число рядов и/или столбцов в этих массивах не согласовано
Попытка произвести матричные или векторные операции над массивами, размеры которых не совпадают
Например, сложение двух матриц разного размера недопустимо. Матричное умножение требует, чтобы число столбцов первой матрицы совпадало с числом строк второй
69
Продолжение прил. А 1
2
3
There is an extra comma in this expression
В выражении лишняя запятая
This function has too many arguments
Функция имеет слишком много аргументов
Выделенное выражение содержит функцию с числом аргументов большим, нежели требуется
This value must be a matrix
Значение должно быть матрицей
Попытка произвести матричную операцию не над матрицей
This variable or function is not defined above
Переменная или функция не определена выше
Имя неопределенной функции будет помечено красным цветом
70
4 Запятые должны использоваться для того, чтобы отделять: • аргументы в функции; • первые два элемента области в определении интервала; • выражения в графике; • элементы во входной таблице; • нижние индексы в матрице. Любые другие применения запятой приводят к ошибке. Например, запись 4,000 неправильная, а запись 4 000 − правильная
Проверьте правильность применения функции
Удостоверьтесь, что эта функция или переменная определена выше. Это сообщение появится, если переменная некорректно используется в глобальном определении. Эта ошибка часто свидетельствует о том, что другое уравнение выше в документе является ошибкой. В этом случае все выражения, использующие выражение с ошибкой, будут помечены красным цветом
Продолжение прил. А 1
2
You have one solve block inside another. Every "Given" must have a matching "Find" or "Minerr"
Один вычислительный блок содержится внутри другого. Каждому ключевому слову Given должно соответствовать Find или Minerr
Expression contains nonsymbolic operators
Illegal function syntax
Invalid arguments
Invalid range
3
Указаны два ключевых слова Given подряд без Find или Minerr посередине. Вычислительный блок не может иметь внутри себя другой вычислительный блок
4
В качестве альтернативы можно задать функцию в терминах одного вычислительного блока и использовать ее внутри другого вычислительного блока. Во многих случаях это дает тот же самый эффект Сообщения об ошибках в символьных вычислениях Применена символьная операВыражение содержит ция к выражению, одержащеему местозанесимвольные операторы полнители оператора или переменной Символьный процессор не Недопустимый синтакможет интерпретировать высис функции ражение, подобное (f) (X) Это сообщение появится, если, наСимвольный процессор не пример, применить скалярную может выполнить требуемую Недопустимые аргуфункцию к массиву без использоваменты операцию для данных аргумен- ния оператора векторизации и вытов брать команду Symbolics / Simplify (Символика / Упростить) Для поиска численного решения уравнения символьный Недопустимый интерпроцессор пытается вычислить вал одну из своих встроенных функций за пределами области ее определения
71
Окончание прил. А 1
2
3
Ответа не найдено
Символьный процессор достиг предела своих возможностей без вычисления или упрощения, которое затребовал пользователь
No answer found
Ответа не найдено
Символьный процессор не смог найти точного решения уравнения
No closed form found for
Не найдено замкнутой формы для …
Символьный процессор не смог найти интеграл, или сумму, или произведение в замкнутой форме
Синтаксическая ошибка
Обычно результат применения символьной операции в неподходящих или некорректных выражениях. Символьные вычисления выражений с размерностями также приведут к появлению этого сообщения
No answer found; stack limit reached
Syntax error
72
4
ПРИЛОЖЕНИЕ Б Некоторые функции MathCAD Функция
Аргументы
Назначение
1
2
3
a*(z)
z − аргумент
Обратная тригонометрическая или гиперболическая функция *
APPENDPRN (file)
file − строковое представление пути к файлу
Дозапись данных в существующий текстовый файл
arg(z)
z − аргумент функции
Аргумент комплексного числа
atan2 (x, y)
х, у − коорднинаты точки
Угол, отсчитываемый от оси ох до точки (х,у)
augment (A,B,C, ...)
А, В, С, ... − векторы или матрицы
Слияние матриц слева направо
ceil (x)
х − аргумент
Наименьшее целое, не меньшее х
cols (A)
А − матрица или вектор
Число столбцов
D* (x,par)
x − значение случайной величины par − список параметров распределения*
Плотность вероятности со статистикой распределения*
diag(v)
v − вектор
Диагональная матрица, на диагонали которой находятся элементы вектора
eigenvals (A)
А − квадратная матСобственные значения матрицы рица
eigenvec (A,K)
А − квадратная матСобственный вектор матрицы, соответстрица А − собствен- вующий заданному собственному значению ное значение
eigenvecs (A)
А − квадратная матСобственные векторы матрицы рица
Find (x1,x2, ...)
x1 , х2 , . . . − переменные
Возвращает корень алгебраического уравнения (скаляр) или системы (вектор), определенных в блоке с ключевым словом Given
73
Продолжение прил. Б 1
2
3
floor (x)
х − аргумент
Наибольшее целое число, меньшее или равное х
geninv (A)
А −матрица
Создание обратной матрицы Ключевое слово для ввода систем уравнений, неравенств и т. п.
Given identity(N)
N − размер матрицы Создание единичной матрицы
v — вектор частотicfft(v), ICFFT(v) ных данных Фурьеспектра
Вектор комплексного обратного преобразования Фурье (в разных нормировках)
if (cond,x,y)
cond − логическое условие х, у − значения, Функция условия возвращаемые, если условие верно (ложно)
Im(z)
z − аргумент
Мнимая часть комплексного числа
interp (s,x,y,t)
s − вектор вторых производных х, у − векторы данных t − аргумент
Сплайн-интерполяция
length (v)
v − вектор
Число элементов вектора
line(x,y)
х, у − векторы данных
Вектор из коэффициентов линейной регрессии b+ах
ln(z)
z − аргумент
Натуральный логарифм
log(z)
z − аргумент
Десятичный логарифм
log(z, b)
z − аргумент
Логарифм z по основанию b
Isolve (A,b)
А − матрица СЛАУ b − вектор правых частей
Решение системы линейных уравнений (СЛАУ)
matrix (M,N,f )
М − количество строк N − количестСоздание матрицы с элементами f (i, j) во столбцов f ( i , j ) − функция
Minerr (xl, x2, . ..)
xi, x2, . . . − переменные
Возвращает вектор приближенного решения системы уравнений и неравенств, определенных в блоке с ключевым словом Given
74
Продолжение прил. Б 1
2
3
p* (x,par)
х − значение случайной величины par − список параметров распределения*
Функция распределения со статистикой*
polyroots (v)
v − вектор, составленный из коэффициентов полинома
Возвращает вектор всех корней полинома
q* (p,par)
р − значение вероятности par − список параметров распределения*
Квантиль (функция, обратная функции распределения) со статистикой*
rank (A)
А − матрица
Ранг матрицы
Re(z)
z − аргумент
Действительная часть комплексного числа
root (f (x, . . .) , x[a, b])
f (x, . . . ) −функция x − переменная ( a , b ) − интервал поиска корня
Возвращает корень функции
rows (A)
А − матрица или вектор
Число строк
sign(x)
х − аргумент
Знак числа
signum(z)
z − аргумент
Комплексный знак числа
stack (A, B,C, . . .)
А, В, С, . . . − векторы или матрицы
Слияние матриц сверху вниз
str2num(S)
s − строка
Преобразование строкового представления в действительное число
str2vec(S)
s −строка
Преобразование строкового представления в вектор ASCII-кодов
strlen(S)
s − строка
Количество знаков в строке
tr(A)
А − квадратная матСлед матрицы рица
trunc (x)
х − аргумент
Целая часть числа
vec2str (v)
v − вектор ASCIIкодов
Строковое представление элементов вектора v
75
СОДЕРЖАНИЕ Лабораторная работа № 1. Решения простейших задач средствами MathCAD... Лабораторная работа № 2. Численные методы решения уравнений и систем уравнений. Построение графиков в среде MathCAD.................................... Лабораторная работа № 3. Работа с файлами, использование условных функций и программирование в среде MathCAD ........................................................ Лабораторная работа № 4. Символьные вычисления............................................. Список литературы .................................................................................................. ПРИЛОЖЕНИЕ А. Сообщения об ошибках в системе MATHCAD (часто встречающиеся у начинающих пользователей) ................................................ ПРИЛОЖЕНИЕ Б. Некоторые функции MathCAD................................................
76
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИСПОЛЬЗОВАНИЕ ПАКЕТА MATHСAD В ИНЖЕНЕРНЫХ РАСЧЕТАХ Методические указания к выполнению лабораторных работ
ПЕНЗА 2007 77
78