- •Сборник
- •Владикавказ
- •Содержание
- •Лабораторная работа № 1 Освоение интерфейса пакета Mathcad
- •II. Цель работы.
- •III. Порядок выполнения работы
- •II. Алгоритм решения системы уравнений с помощью встроенной функции Given…Find приведено на Рис. 1.6.
- •IV. Выполнение работы.
- •VI. Контрольные вопросы.
- •Назад лабораторная работа № 2 «Вычисления в пакете Mathcad. Матрицы»
- •I. Цель работы:
- •II. Теоретическая часть.
- •1. Создание матриц.
- •3. Решение матричных уравнений.
- •4. Оператор векторизации
- •5. Решение дифференциальных уравнений.
- •III. Порядок выполнения работы
- •IV. Выполнение работы.
- •V. Содержание отчета
- •VI. Контрольные вопросы.
- •VIII. Варианты заданий.
- •Назад лабораторная работа № 3 «Вычисления в пакете Mathcad.Интерполяция и Регрессия»
- •I. Цель работы:
- •II. Теоретическая часть.
- •1. Интерполяция.
- •2. Регрессия.
- •4. Элементы математической статистики.
- •III. Порядок выполнения работы
- •IV. Выполнение работы.
- •V. Ход работы.
- •VI. Содержание отчета
- •VII. Контрольные вопросы.
- •IX. Варианты заданий.
- •Назад лабораторная работа № 4 «Вычисления в пакете Mathcad»
- •I. Цель работы:
- •II. Теоретическая часть.
- •1. Решение систем уравнений.
- •2. Приближенное решение уравнений и систем уравнений.
- •3. Исследование функции на экстремум.
- •4. Рекурсивные вычисления.
- •III. Порядок выполнения работы.
- •IV. Выполнение работы.
- •V. Ход работы.
- •VI. Содержание отчета
- •VII. Контрольные вопросы.
- •IX. Варианты заданий.
- •Назад лабораторная работа № 5 Символьные вычисления в Mathcad
- •I. Цель работы.
- •II. Теоретическая часть.
- •III. Порядок выполнения работы
- •IV. Выполнение работы.
- •V. Ход работы.
- •VI. Содержание отчета
- •VII. Контрольные вопросы.
- •IX. Варианты заданий.
- •Назад лабораторная работа № 6
- •Назад лаборат0рная работа № 7 Решение дифференциальных уравнений в функции одной переменной на заданном отрезке методом Рунге-Кута в среде mathcad
- •Назад лаборат0рная работа № 8 Создание анимации в среде mathcad
- •Назад список литературы.
V. Ход работы.
-
Ознакомиться с данной инструкцией. Набрать выше приведенный фрагмент программы, (как шаблон для дальнейших работ),
VI. Содержание отчета
Отчет к лабораторной работе должен включать следующие разделы:
-
математическая постановка задачи;
-
алгоритм задачи;
-
блок-схему алгоритма;
-
результат вычисления задачи в среде Mathcad в электронном виде;
-
для задач, допускающих получение точного решения аналитическим методом, привести это решение в текстовом поле в среде Mathcad, и сравнить с полученным результатом.
-
Привести абсолютную и относительную ошибки!
VII. Контрольные вопросы.
Как решается задача о нахождении наибольшего (наименьшего) значения функции одной независимой переменной аналитически и в среде Mathcad?
Почему не всегда можно решить задачу аналитически (учитывая использование численных методов) для приближенного решения трансцендентных уравнений F(x) = 0?
Что такое функция “root” и как она работает?
В чем достоинства и недостатки метода “Solve”?
Как будет выглядеть программа реализации поиска минимума?
Если функция определена, но разрывная, в конечном числе точек отрезка [a, b], можно ли применить метод “solve”?
VIII. Задачи для самостоятельного решения.
Предлагается самостоятельно изменить параметр x? Чтобы посмотреть, как изменяется решение.
Измените коэффициенты входных переменных.
IX. Варианты заданий.
Найти решение функции y = f(x) на отрезке [a, b] средствами Mathcad. Сравнить результат с аналитическим значением (решением аналитическим методом), оценить абсолютную и относительную погрешности вычислений.
Таблица вариантов
(таблица из лаб. Работы № 6,7)
Назад лабораторная работа № 6
Приближенное решение дифференциальных уравнений первого
порядка методом Эйлера с применением пакета MathCAD
(Работа выполняется в компьютерном Классе)
Минимальные системные требования:
80486 (66 МГЦ или быстрее) Pentium
или IBM совместимый компьютер. ОС Windows 98 или выше. По крайней мере, 55 мегабайтов дискового пространства для типичной (заданной по умолчанию) инсталляции.
Цель работы: ознакомление студентов с приближенными методами решения дифференциальных уравнений первого порядка и приобретение навыков решения дифференциальных уравнений первого порядка в среде MathCAD.
Теоретическая часть.
Пусть дано дифференциальное уравнение первого порядка
y ‘ = f(x, y) (1)
И даны начальные условия
y|x=x0 = y0 (2)
Определение точного решения уравнения (1) возможно лишь в отдельных специальных случаях, поэтому в инженерной практике приходится прибегать к приближенным методам отыскания решения этого уравнения. Одним из методов приближенного интегрирования дифференциального уравнения первого порядка является метод Эйлера. Суть этого метода состоит в том, что решение уравнения (1) ищется на отрезке [a, b] в виде таблицы приближенных значений искомой функции y = f(x) при дискретных значениях аргумента х. Для этого:
I) Делим отрезок [а, в] на n равных частей точками
x1, x2, …, xn-1, …
Полагая x0 = a, xn = b, получим n отрезков
[x0, x1], [x1, x2], [x2, x3], …, [xn-1, xn]
Длина отрезка деления h = xi+1 – xi - это шаг вычислений. Очевидно
h
=
![]()
2. Строим формулу для определения приближенного значения функции y = f(x) в точках деления xi, т.е. в точках
x0, x1, x2, …, xn-1, xnxx
Для этого рассмотрим i –тый отрезок деления [xi, xi+1], где i = 1, 2, 3, …, n-1
На
этом
отрезке
заменим
интегральную
кривую
y = y(x)
отрезком
к
асательной,
проведенной к
этой
кривой
в
точке
Mi(xi,
yi).
Уравнение
касательной
в
точке
xi
будет иметь вид:
у
- yi
= y '(x
- xi)
или,
учитывая равенство (I),
получим
у - yi
= f(xi,
yi)*(x
- xi);
Отсюда:
y = yi + f(xi, yi)*(x - xi) (3)
Поскольку точка Ni+1 лежит на касательной, то ее координаты (xi+1, yi+1) удовлетворяют уравнению (3), т.е.
yi+1 = уi + f(xi, yi)*(xi+1 - xi)
или, учитывая, что xi+1 - xi = h получим:
yi+1 = уi + f(xi, yi)*h 4)
Если искомая функция y(x) непрерывна, а h мало, то значение ординаты кривой КМi+1 мало отличается от ординаты касательной КNi+1 и значение ординаты КNi+1
yi+1 = уi + f(xi, yi)*h
где i = 1, 2, ..., (n-1)
можно принять за значение функции. Таким образом, по формуле (4), полагая i = 0, найдем y1:
y1
=
у0
+ f(x0,
y0)*h
y1
= у0
+
0
y1 будет приближенным значением искомой функции в точке x1. Затем, подставив (x1,y1) в формулу (4), найдем
y2
=
у1
+ f(x1,
y1)*h
или y2
= у1
+
1
где
1
= f(x1,
y1)*h
и так далее, пока не определим yn. 3. Если построить найденные точки М1,M2, ..., Mn и соединить их отрезками прямой, то получим ломаную - приближенное изображение интегральной кривой. Эта ломаная называется ломаной Эйлера
В
теории
дифференциальных
уравнений
доказывается,
что при
условиях,
обеспечивающих существование
и
единственность
решения
при
неизменном
промежутке [а,
в]
с
ростом
числа
делений
n
(h
0),
последовательность
ломаных
Эйлера
равномерно
приближается
к
интегральной
кривой,
проходящей
через
точку
(
x0,
y0),
а
формулы
(4)
теоретически
могут
дать
любую
точность.
Однако
применение
формул
(4)
сопровождается
интенсивным
накапливанием
погрешностей:
считая
yi
приближенным
значением
функции
в
точке xi,
мы
допускаем
ошибку
не
только
за
счет
приближенного
равенства
ординат
точек
на
касательной
и
кривой,
но
и
за
счет
того,
что
прадыдущее
значение
yi-1
найдено
неточно.
Поэтому
практически
трудно
достичь
высокой
точности
путем уменьшения
шага
вычислений.
И
если
требуется
большая
точность,
то
пользуются
либо
модификацией
метода
Эйлера,
либо
другими
методами.
Порядок
выполнения работы:
I. Делим исходный отрезок [а, b] на n равных частей:
a = x0 < x1 < x2 < ... < xi < xi+1 < ... < xn = b
Находим шаг вычисления
h = (b - bi)/n
2. Составляем таблицу:

3.
Заполняем
i-ый
столбец
(если
в
условии
n
=10,
то номера
будут
0;
I;
2;3; ...,
9);
Затем находим
xi
=
а +
h
*
i и
заполняем
второй
столбец.
Третий
столбец
заполняется
постепенно.
Значения y0
берется
из
условия
у|x=x0
= y0.
Значения y1
вычисляется
по
формуле
y1
= y0
+
0
где
0
=
f(x0,
y0)*h.
При
этом предварительно находим f(x0,
y0),
и
0
и
заполняем соответствующие столбцы.
Затем,
зная
y1,
Найдем
y2
1
= f(x1,
y1)*h
y2
=
y1
+
1
Замечание.
Столбцы
4-ый
и
5-ый
необходимы
для
подготовки
вычисления
f(xi,
yi).
Например,
если
f(x,
y) = cos
,
то в
4
столбце
будет производиться
вычисление
.
4. Заполнив таблицу, берем M0(x0, y0), M1(x1, y1), ..., Mn(xn, yn) и строим их на миллиметровой бумаге. Соединив их звеньями ломаной, получим ломаную кривую Эйлера. ПРИМЕР (решение с использованием калькулятора): Найти приближенное решение дифференциального уравнения
у ' = x + у
удовлетворяющее начальному условию y|x=0 =1, на отрезке [0, 1] c использованием микрокалькулятора, компьютера. Берем n =10, делим отрезок [0, 1] на 10 частей. Шаг вычислений
h =(1-0)/10 = 0,1. Составляем таблицу (см. приложение I.) стр. 7. Заполняем первый столбец с номерами деления l: i = 0, 1, 2, ..., 10; затем заполняем второй столбец значениями x0 = a = 0 x1 = x0 +h*2, и т.д., получаем x0 = 0, x1 =0,1, x2 = 0, 2, ..., x9 = 0,9, x10 = 1,0. Третий столбец заполняется значениями yi постепенно, после соответствующих вычислений. Значение y0 , берется из начальных условий
y|x=0
=1, значит y0
= 1. Для нахождения y1,
согласно
формуле
(4),
y1
= y0
+
0,
вычисляем f(x0,
y0)
в строке с номером 0:
f(x0, y0) = x0 + y0 = 0 + 1,0 = 1
Затем
находим
0
= f(x0,
y0)*h
= 1* 0,1 = 0,1. Записываем полученные числа
в соответствующие столбцы этой строки.
Вычисляем значение y1
= y0
+
0
= 1,1
и записываем его дважды: в последний
столбец строки с номером 0 и в третий
столбец строки с номером 1 ( в следующую
строку). Аналогично вычисляем y1,
y2,
y3,
…, yn.
5
.
Строим на миллиметровой бумаге точки
с координатами (x0,
y0),
…, (xn,
yn).
Перед построением точек координаты их
следует округлить до двух знаков после
запятой. Получаем точки М0(0,1);
М1(0,1;
1,1); М2(0,2;
1,22); … соединяем точки звеньями ломаной.
Получим ломаную кривую Эйлера. По
найденным
значениям, xi,
yi
строим, ломаную
Эйлера
Содержание отчета. Задание, Таблица, Построенная на миллиметровой бумаге ломаная Эйлера. Титульный лист – стандартный. На первом листе уточнить, что работа выполнена с использованием компьютера в среде MathCAD. Hа втором листе надо записать задание, расчеты, расчетную таблицу и приложить ломаную Эйлера выполненную на миллиметровой бумаге. Контрольные вопросы: 1. Дать вывод формулы (4) 2. Почему применение формулы (4) сопровождается интенсивным накапливанием погрешностей. Выполнение работы в среде Visual Basic.
В
ыполняется
блок
-
схема
алгоритма
на отдельном листе и
записывается код прог-раммы. Строится
график,
на миллиметровой бу-маге, как
пример,
рассмотрено
решение
дифференциального
уравнения
y
'
= x + y, при начальных условиях
y(0) = 1.
Численное дифференцирование аналити- чески или таблично заданной функции у(х) заключается в замене y(x) интерполяцион- ным полиномом P(x), производные dnP(x)/dxn = dnу(х)/dxn, которого можно найти анали- тически с помощью соответствующих формул. Для функций, заданных таблично со случайной погрешностью, точность численного дифференцирования может быть низкой.
Численное дифференцирование при равно- мерно расположенных узлах с интерполяцией реализуется следующими формулами (для 3, 4 и 5 узлов):
у'(х0+
ph)3
=
*
[(p
-
0,5)
у-1
-
2руо+(р+0,5)
y1,
y'(х0+ph)4
=
*
(-
y'(х0+ph)5=
*

В этих формулах р = (х — xo)/h и x = xo+ph. Вычисление у'(x) по последней формуле реализовано программой 6-2, в которой ординаты
у-2 у-1 y0, у1 и у2 обозначены как А, В, С, D и Е.
Формулы численного дифференцирования для узлов у(х) существенно проще приведен- ных, так как в узлах Р принимает фикси- рованные значения. Особенно простыми явля- ются формулы для центрального узла (Р = 0) (см. табл. 6-1). Эти формулы удобны для численного дифференцирования таблично за- данных функций в точке х = хn. Частные производные функции ряда пере- менных f(x1, х2, ..., хn) вычисляются по при- веденным выше формулам, если задавать приращение одной из переменных и оставлять неизменными (равными заданным значениям) остальные переменные, код программы решения приведен ниже.
Программа 6-1.
10 PRINT 'ВЫЧИСЛЕНИЕ ПЕРВОЙ ПРОИЗВОДНОЙ, ТАБЛИЧНО ЗАДАННОЙ' 20 РР1НТ 'N=3-5 ОРДИНАТАМИ ФУНКЦИИ ПРИ РАВНОМЕРНОМ' 30 PRIHT 'РАСПОЛОЖЕНИИ УЗЛОВ ИНТЕРПОЛЯЦИИ' :PRINT' ' 40 INPUT 'BВEДИTE Х0 = 'W: INPUT 'ВВЕДИТЕ ШАГ Н= ' H 50 INPUT 'ЗАДАЙТЕ ЧИСЛО OPДИHAT N = ' N 60 IF N = 3 GОТO 100
70 IF N = 4 GОТO 110
80 IF N = 5 GОТО 120
90 INPUT 'ПОВТОРИТЕ ВВОД N='Н: GОТО 60
100 INPUT 'ВВЕДИТЕ ОРДИНАТЫ Y-1, Y0, Y1'A, В, С: GОТО 130
110 INPUT 'ВВЕДИТЕ ОРДИНАТЫ Y-1, Y0, Y1, Y2' A, В, C, D, : GОТО 130
120 INPUT 'ВВЕДИТЕ ОРДИНАТЫ Y-l, Y-1, Y0, Y1, Y2' A, B, C, D, E 130 INPUT ' ВВЕДИТЕ X= ‘X: LETP=(X-W)/H 140 IF N=4 GОТО 180
150 IF N=5 GОТО 210
160 LETF=((P-.5)*A-2*Р*В+(Р+.5)*C)/Н
170 PRINT 'DY/DХ=' F: G0T0 130 180 LETF=(-(3*Р*Р-6*Р+2)*A/6+(3*Р*Р-4*Р-1)*В/2) 190 LETE=(-(3*Р*Р-2*Р-2)*С/2+(3*P*P-1)*D/6) 200 LETF=(F+E)/H: GОТО 170 210 LETF=(((2*P-3)*Р-1)*Р+1)*A/12 220 LETF=F-(((4*Р-3)*Р-8)*Р+4)*В/6 230 LETF=F+(2*P*P-5)*Р*С/2 240 LETF=F-(((4*Р+3)*Р-8')*Р-4)*D/6 250 LETF=F+(((2*P+3)*P-1)*P-1)*E/12 260 LETF=F/H: G0T0 170: EHD
И прилагается распечатка решения этой задачи с таблицей данных и гистограммой (графиком).
Формулы численного дифференцирования (производные в центральных узлах)
Таблица 6-1
Алгоритм решения дифференциальных уравнений первого порядка методом Эйлера в среде MathCAD.
Приступая к разработке программы вне зависимости от использованного языка программирования, необходимо разбить всю задачу на последовательность независимых заданий, соответствующих алгоритму, описанному в предыдущем разделе. Программа должна состоять из следующих блоков: 1. Задание начальных условий. 2. Задание функции f(х, у(х)) . 3. Задание отрезка, на котором ищется решение, и шага интегрирования. (Здесь, и далее задавать, не шаг интегрирования, а количество интервалов, на которые разбивается отрезок интегрирования, а затем вычислять значение шага.) 4. Вычисление координат точек, в которых ищется решение ДУ. 5. Решение уравнения первого порядка методом Эйлера. 6. Вывод результатов.
Программирование
Программирование занимает особое место в Mathcad. Для начального обучения изучать его совершенно не обязательно. Возможности Mathcad позволяют решить подавляющее количество задач без всякого программирования, да к тому же, как правило, несколькими способами. Однако есть класс задач, при решении которых без программирования не обойтись. Это задачи, в которых часть документа из не- скольких или многих операторов надо выполнить многократно. В таких случаях документ должен состоять из отдельных подпрограмм, объединенных в единую «головную» программу. И в этом случае программирования можно было бы избе- жать, если бы создатели Mathcad предусмотрели оператор перехода к метке, который есть (был) во многих языках программирования, в частности в FORTRAN. Серьезные программисты считают «дурным тоном» использование оператора перехода к метке, полагая, что в любой программе можно обойтись без меток. Это верно, но зачастую требует больших усилий. Система же Mathcad предназначена для обычных инженеров, не всегда являющихся специалистами в программировании, и поэтому не должна быть сложной в применении. Mathcad позволяет вводить программы любой сложности. Образцом достаточно сложной программы является программа решения плоской упругопластической задачи методом конечных элементов, приведенная в примере 16 части IV.
Программирование в Mathcad чрезвычайно наглядно и понятно, так как программа представляет собой последовательность формул. Основные операторы программирования расположены на панели Programming (Программирование), вызываемой щелчком на кнопке Programming Toolbar (Панель программирования) математической панели.
Далее программами будем называть не все документы Mathcad, а только те из них, которые написаны с использованием панели программирования.
Создание программ
Программа Mathcad есть частный случай выражения Mathcad. Подобно любому выражению, программа возвращает значение, если за ней следует знак равенства. Обычно выражение Mathcad состоит из одной строки. Выражение-программа содержит много строк. Фактически выражение-программа - это- составное выражение. Выражение-программа состоит из названия выражения, следующего за ним знака присваивания значения и необходимых выражений в правой части, записанных в столбик и объединенных слева вертикальной чертой.
Ввод строк в программу
Для создания программы надо выполнить описанную ниже процедуру.
1. Введите имя выражения-программы.
2. Введите оператор присваивания (:=).
3. Щелкните на кнопке Add Program Line (Добавить строку программы) панели программирования столько раз, сколько строк должна содержать программа.
4. В появившиеся места ввода введите нужные операторы, лишние места ввода удалите. Чтобы создать недостающие места ввода, надо установить синий уголок курсора в конец строки, после которой ввести новую строку. Клавишей пробела следует выделить полностью всю строку и щелкнуть на кнопке Add Program Line. При этом надо учитывать следующее (рис. 6.1):
если синий уголок курсора находится в начале строки, то после щелчка на кнопке Add Line место ввода появится выше этой строки;
если синий уголок курсора находится в конце строки, то после щелчка на кнопке Add Line место ввода появится ниже этой строки.

Рис. 6.1. Ввод строки в программу
В некоторых случаях, например при вставке строки между двумя вложенными циклами, что при создании программы требуется выполнять достаточно часто, указанный прием не работает. В этом случае нужна другая последовательность действий:
-
Выделите черным цветом весь внутренний цикл.
-
Вырежьте его в буфер обмена, щелкнув на кнопке Cut (Вырезать) стандартной панели инструментов.
-
Щелкните на кнопке Add Program Line (Добавить строку программ) панели программирования.
-
Вставьте из буфера обмена вырезанный кусок на прежнее место ввода, установив туда курсор и щелкнув на кнопке Paste (Вставить) стандартной панели инструментов.
-
Заполните появившееся дополнительное место ввода. При достаточном навыке этот прием вставки дополнительных строк удобно использовать во всех случаях.
Локальное присваивание значений
Программа Mathcad — это обособленный модуль внутри документа Mathcad со своими именами переменных и их значениями, которые не видны из других мест документа.
Присваивание значений переменным и константам в программах производится с помощью программного оператора присваивания (←), который вводится с панели программирования щелчком на кнопке Local Definition (Локальное определение). При создании программы, когда этот знак приходится использовать часто, полезно пользоваться клавишей ((открывающая фигурная скобка).
Локальные значения переменных нельзя использовать вне программы. Если это все же необходимо, их надо вывести из программы специальным образом (см. раз- дел «Вывод значений из программы»).
ВНИМАНИЕ: Ни «обычный» оператор присваивания (:=), ни оператор вывода (=) в пределах программ не применяются.
Из основного документа в программу передаются в виде констант все значения величин, имеющих одинаковые имена. Эти значения сохраняются неизменными при любых действиях с ними внутри программы.
В большой программе, например, в программе решения упругопластической задачи (пример 16 в части IV), где в головную программу ZZ надо передать много переменных величин, всем им в начале программы присваиваются значения. Обратите внимание, что имена передаваемых и принимаемых величин чаще всего совпадают, чтобы программу было легче понять. В указанном примере передается 6 вели- чин и каждая занимает одну строку в программе, что в значительной степени увеличивает программу.
Передать нужные величины в программу можно и другим способом, создав программу-функцию, где передаваемые величины заданы в виде параметров функции. Так оформлены в рассмотренном примере все подпрограммы, используемые затем в главной программе. При этом программа занимает меньше места в длину, но больше в ширину.
Для экономии места в документе можно прибегать к наложению объектов друг на друга. Щелкните правой кнопкой мыши на объекте и выберите в контекстном меню команду Вring to Front (Выдвинуть на передний план) или Send to Back (Убрать на задний план). Документ получается более компактным. Именно так скомпонованы многие программы в этой книге.
Любая программа представляет собой сочетание обычных математических выражений с операторами условия и цикла. Разберем действие этих операторов.
Условный оператор if.
Условный оператор if действует в два этапа. Сначала проверяется условие, записанное справа от оператора if, и, если оно истинно, выполняется выражение слева от него, если ложно, происходит переход к следующей строке программы.
Чтобы вставить условный оператор if в программу, проделайте описанную ниже процедуру. 1. В создаваемой программе установите курсор на свободное место ввода, в которое должен быть вставлен условный оператор.
2. На панели программирования щелкните на кнопке If Statement (Оператор if).
В программе появится шаблон оператора с двумя местами ввода.
3. В правое место ввода введите условие. Пользуйтесь при этом логическими операторами, вводя их с панели Boolean (Булевы операторы).
4. Слева от оператора if введите выражение, которое должно выполняться, если условие истинно.

Рис. 6.2. Способ записи условия if в Mathcad.
Если при выполнении условия должно выполняться сразу несколько выражений, то надо иметь несколько мест ввода. Для их создания установите курсор на место ввода слева от оператора if и щелкните на кнопке Add Program Line (Добавить строку программы) панели программирования столько раз, сколько строк надо ввести.
Обратите внимание, что при этом меняется вид условного оператора. Новая вертикальная линия с местами ввода появляется не слева, а ниже и правее оператора if (рис 6.2.).

Рис. 6.3. Примеры записи операторов программирования.
Для примера рассмотрим решение задачи Коши для ДУ вида
у' = -x2 + y
с начальным условием у(0) = 1. Для реализации задания мы будем использовать пакет Mathcad. В пакете Mathcad соответствующие блоки будут выглядеть следующим образом: 1. x0 := 0 y0 := 1 задание начальных условий;
2. f(x, y):= -x2 + y - запись самой функции, решение которой необходимо найти;
3. x1:= 10 - конечное значение интервала интегрирования;
N:=1000, - число итераций;
i:= 0..N, - т.е. индекс при x меняется от 0 до N;
=
(х1 —
х0)/N
- цикл нахождения шага интегрирования;
4.
x1
=
x
* i - нахождение значений
xi;
5.
В
данном
блоке
нам
предстоит
написать
функцию,
реализующую
алгоритм
Эйлера, которая
будет
состоять
из
нескольких
операторов,
т.
е.
является
программой. Так
как
существуют
определенные
отличия
средств
создания
программ пакета
Mathcad
от
обычных
языков
программирования,
необходимо,
на
примере
решения
данной
задачи
подробно
описать
последовательность действий,
позволяющих
создавать
программы
в
пакете
MathCAD.
В
качестве
входных
параметров,
передаваемых
в
данную
функцию,
будем
использовать следующие:
значение
функции
в
начальной
точке
у0
(см пункт 1); массив
координат точек,
в
которых
ищется
решение
ДУ
(см. пункт 3); функцию
f(х,
у); N—
количество
точек,
в
которых
ищется
решение
ДУ.
Для
создания
функции
необходимо:
1)
,
затем
—
символ
присваивания:
2)
на втором - включить
панель
с
набором
инструментов
программирования,
нажав
кнопку
![]()
3
)
нажать
на
панели
программирования
кнопку
,
в
результате
в
рабочем
документе
появится
заготовка
для
ввода
операторов,
входящих
в
состав
функции
(можно также кнопкой ъ).
4
)
переместить
курсор
в
первое
поле
ввода, щелкнув
по
нему
мышью
и ввести y0 затем нажать
к
нопку
«←»
и
ввести
в
появившееся
поле
у0:
5)
щелкнуть
по
кнопке «Add
line»
6) и нажать кнопку «for»
7) ввести в соответствующие
местозаполнители:
счетчик
цикла, диапазон изменения счетчика цикла и оператор, вы- полняемый в цикле:
8)
переместить
кур-
сор
в
нижнее
поле
и
напечатать
у:
6. Получить решение ДУ в массив М (вывод решения): М:= Еu1ег(y0,x, f, N) 7. График решения ДУ (см. рис.6.4).

Рис.6.4. График решения уравнения.
Задание:
-
Решить дифференциальное уравнение первого порядка (ДУ), согласно варианту (см. таблицу 6-2), традиционным способом (аналитически).
-
Составить таблицу значений решения ДУ первого порядка, при различных значениях шага h, методом Эйлера в пакете MathCAD.
-
Поварьировать начальными условиями (x0, y0, xn), чтобы выявить их влияние на решение ДУ.
-
На отдельном листе представить график решения ДУ в пакете MathCAD.
Таблица 6-2.
|
№№ п.п. |
Дифференциальное уравнение |
Начальное условие |
Конечная Точка xn |
Шаг h |
|
|
x0 |
y0 |
||||
|
1 |
2 |
3 |
4 |
5 |
6 |
|
1 |
y’ = x*y2 + 1 |
0 |
0 |
1 |
0.1 |
|
2 |
y’= x2*y3 + x2 |
0 |
0 |
1 |
0.1 |
|
3 |
y’ = x + Sin y/π |
4 |
11 |
5 |
0.1 |
|
4 |
y’ = x + Sin y/√10 |
1.6 |
2.9 |
2.6 |
0.1 |
|
5 |
y’ = x + Cos y/π |
1.7 |
5.3 |
2.7 |
0.1 |
|
6 |
y’= x + Cos y/3 |
1.6 |
4.6 |
2.6 |
0.1 |
|
7 |
y’ = x2*y2 -1 |
0 |
1 |
1 |
0.1 |
|
8 |
y’ = Sin y – Sin x |
0 |
0 |
1 |
0.1 |
|
9 |
y’ = 1 + x – x2 -2y2 |
1 |
1 |
2 |
0.1 |
|
10 |
y’ = 0,1*(x2 + y2) |
1 |
1 |
2 |
0.1 |
|
11 |
y’ = √x *y2 + 1 |
1 |
0 |
2 |
0.1 |
|
12 |
y’ = 1/(x2 + y2) |
0 |
1 |
1 |
0.1 |
|
13 |
y’ = x +Cos y/√7 |
0.5 |
0.6 |
1.5 |
0.1 |
|
14 |
y’ = x + Cos y/e |
0 |
0 |
1 |
0.1 |
|
15 |
y’ = x + Sin y/3 |
0 |
1 |
1 |
0.1 |
|
16 |
y’ = x + √y |
0.5 |
0.7 |
1.5 |
0.1 |
|
17 |
y’ = √x + √y |
0 |
0 |
1 |
0.1 |
|
18 |
y’ = y3 -x |
0 |
1 |
0.1 |
0.01 |
|
19 |
y’ = ex – y2 |
0 |
0 |
0.4 |
0.04 |
|
20 |
y’ = x2*y2 -1 |
0 |
1 |
0.1 |
0.01 |
|
21 |
y’ = 0,1(x2*y2 +1) |
0 |
0 |
1 |
0.1 |
|
22 |
y’ = x2 –xy + y2 |
0 |
0.1 |
1 |
0.1 |
|
23 |
y’ = 0,2(x2 – y3) |
0 |
0 |
1 |
0.1 |
|
24 |
y’ = 0,1(x2 + y2) |
0 |
0.1 |
1 |
0.1 |
|
25 |
y’ = ex –y2 |
0 |
0 |
0.5 |
0.05 |
|
26 |
y’ = x + y2 |
0 |
0 |
1 |
0.1 |
|
27 |
y’ = x2 + y |
0 |
1 |
1 |
0.1 |
|
28 |
y’ = 2x – 0,1y2 |
0 |
1 |
1 |
0.1 |
|
29 |
y’ =0,1x2 + y2 |
0 |
0.1 |
1 |
0.1 |
|
30 |
y’ = 2x – y2 |
0 |
0 |
1 |
0.1 |
|
31 |
y’ = x2 + 2√y |
0 |
1 |
1 |
0.1 |
|
32 |
y’ = 2x2 + √ y |
0 |
1 |
1 |
0.1 |
|
33 |
y’ = 0,2x + 3y2 |
0 |
1 |
1 |
0.2 |
|
34 |
y’ = xy + y2 |
0 |
0.1 |
1 |
0.1 |
|
35 |
y’ = Sin x + y |
0 |
0.2 |
1 |
0.1 |
|
36 |
y’ = x3 + y2 |
0 |
0 |
1 |
0.1 |
|
37 |
y’ = 3√x +√y |
0 |
1 |
1 |
0.1 |
|
38 |
y’ = x + √y |
0 |
1 |
1 |
0.1 |
|
39 |
y’ = x + Sin y/√5 |
0 |
1 |
1 |
0.1 |
|
40 |
y’ = x + √y |
0 |
4 |
1 |
0.1 |
|
41 |
y’ = √y *y2 + 1 |
0 |
1 |
1 |
0.1 |
|
42 |
y’ = x2 + y2 - 3 |
0 |
1 |
1 |
0.1 |
