- •Лабораторный практикум
- •Оглавление
- •Введение
- •Лабораторная работа № 1 «Символьные вычисления»
- •Лабораторная работа № 2 «Работа с файлами данных. Сплайн-аппроксимация. Графика»
- •Лабораторная работа № 3 «Решение уравнений и систем»
- •Лабораторная работа № 4 «Метод наименьших квадратов. Регрессия»
- •Лабораторная работа № 5 «Методы решения дифференциальных уравнений»
- •Лабораторная работа № 6 «Программирование в MathCad»
- •Заключение
- •Библиографический список
Лабораторная работа № 6 «Программирование в MathCad»
Цель работы:Познакомить читателя с возможностями программирования в системеMathCad.
Рекомендуемая литература: [1-4, 7].
Задание:
С помощью условного оператора создать формулу для вычисления значений функции двух переменных.
Построить поверхность, заданную формулой из пункта 1..
С помощью циклического оператора вычислить 10 значений ряда.
Вычислить сумму и произведение элементов ряда лежащих в заданном интервале.
Вычислить абсолютную и относительную разницу между i- частичной суммой и суммой ряда.
Найти разброс i– частичных сумм относительно суммы ряда.
Таблица № 6.1: Варианты лабораторной работы № 6 . «Программирование в MathCad»
№ вар. |
Уравнение Поверхности |
1 |
2 |
1 | |
1 |
2 |
2 | |
3 | |
4 | |
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
1 |
2 |
10 | |
11 | |
12 | |
13 | |
14 | |
15 |
|
16 |
|
17 |
|
1 |
2 |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 |
|
1 |
2 |
27 | |
28 | |
29 | |
30 |
Таблица № 6.2: Варианты лабораторной работы № 6 . «Программирование в MathCad»
№ вар. |
Ряд |
1 |
2 |
1 |
T0=1 [0.6; 0.7] |
2 |
T0=1 [-4; -1]
|
3 |
T0=0 T1=1 [1; 5]
|
1 |
2 |
4 |
T0=0.4 [-0.06;-0.04] |
5 |
T0=0 [1;10] |
6 |
T0=1 [1;20] |
7 |
T0=1 [1;30] |
8 |
T0=0 [1;50] |
9 |
T0=1 T1=2 [0.2;1] |
10 |
T0=0.2 [0.5;100] |
11 |
T0=0.3 [4;30]
|
12 |
T0=1 [2;10]
|
1 |
2 |
13 |
T0=0.1 [1;20] |
14 |
T0=0 T1=2 [0.1;1] |
15 |
T0=0.4 [0.4; 0.6] |
16 |
T0=0.15 [-2;-0.5] |
17 |
T0=0.5 [1;100] |
18 |
T0=1 [1;100] |
19 |
T0=0.23 [10;100]
|
20 |
T0=0 T1=1 [1;50]
|
21 |
T0=0 [1;10] |
1 |
2 |
22 |
T0=1.5 [1;50] |
23 |
T0=0 T1=2 [-3;-1] |
24 |
T0=-0.3 [1;100] |
25 |
T0=0.5 [1;20] |
26 |
T0=0.1 [1;100] |
27 |
T0=0.1 [1;20] |
28 |
T0=1 [1;100] |
29 |
T0=0.1 [1;50] |
30 |
T0=0.3 [0.3; 3] |
Пример выполнения задания:
Задание:
Уравнение Поверхности |
Ряд |
T0=0 [-1; 0] |
Для программирования в MathCadимеется панель инструментов «Программирование»:
Рассмотрим имеющиеся на ней функции.
Add Line– создает и при необходимости удлиняет жирную вертикальную линию, с право от которой записывается программный блок;
- символ присваивания. Например x12, означает что переменнойxприсваивается значение12;
if– условный оператор, записывается как:Выражениеifусловие, т.е.Выражениевыполняется еслиусловиевыполнено;
otherwise– инструкция иначе (в противном случае), обычно используется с операторомif, когда необходимо вернуть значение при невыполнении условия оператораif;
for– оператор цикла со счетчиком. Например:forсчетчикN1.. N2;
while– оператор цикла с условием. Например:whileусловие;
break– инструкция прерывания;
continue– инструкция продолжения, позволяет вернуться в точку прерывания;
return– инструкция возврата, возвращает значение оператора указанного после нее;
on error– инструкция обработки ошибок, позволяет обрабатывать ошибки, например:Выражение_1onerrorВыражение 2, еслиВыражение_1содержит ошибку выполняетсяВыражение_2.
Воспользовавшись выше указанными операторами, сформируем функцию Z(x,y). Для этого набираемZ(x,y):=и выбираем инструкциюAdd Line
,
в верхнее поле ввода помещаем условный оператор if
.
Заполняя поля условного оператора, получим:
.
Обращаем ваше внимание на то, что скобки в условном операторе обязательны.
У нас остались значения, которые принимает функция при не выполнении заданного условия. Для учета этого воспользуемся инструкцией otherwise:
.
Таким образом, функция Z(x,y)сформирована и мы можем посмотреть ее значения в различных точках:
.
Построим поверхность полученной функции:
.
Воспользуемся циклическим оператором forдля вычисления элементов ряда. Для этого запишемТ:=и дважды вызовем инструкциюAdd Line, получим:
,
где T– есть вектор элементов ряда.
В первом поле ввода поместим оператор присваивания начального значения ряда:
.
Во втором поле поместим оператор цикла:
.
В последнем поле помещаем имя возвращаемого объекта:
.
Вычислим сумму элементов ряда лежащих в заданном интервале. Для этого оформим сумму элементов ряда как функцию от aиb, гдеaиbграницы заданного интервала.
Запишем основу для данного блока, как это делалось ранее:
.
Перед вычислением переменную, в которую будем насчитывать сумму ряда, необходимо обнулить:
.
Далее откроем цикл:
и в тело цикла вставим условный оператор:
.
Заканчиваем программный модуль и получаем:
.
Теперь мы можем вычислить сумму элементов ряда из любого интервала:
.
Сумму Sможно было вычислить иначе:
,
но в данном случае мы получим только одно значение суммы элементов ряда из указанного интервала:
.
Рассмотрим вычисление произведения элементов ряда, попадающих в заданный интервал:
.
Ясно, что произведение элементов из интервала [-1; 0]будет нулевым за счет правого края интервала, но мы можем вычислить произведение из интервала близкого к исходному, например[-1; -0.0001]:
.
Вычислим абсолютную и относительную разницу между i- частичной суммой и суммой ряда. Для этого оформим вычислениеi– частичных сумм:
,
где сумма всего ряда.
Теперь можно вычислить абсолютную и относительную разницы:
.
Для проверки вычислим абсолютную и относительную разницы для всей суммы:
.
Построим графики абсолютных и относительных разностей:
-
.
Отметим, что для получения графика относительной ошибки умножили результат на 100%.
Вычислим разброс i– частичных сумм относительно суммы ряда. Воспользуемся для этого уже созданным программным блоком для вычисленияi– частичной суммы ряда. В результате получим:
и среднее квадратичное отклонение равно:
.