Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Часть 1 Mathcad

.pdf
Скачиваний:
29
Добавлен:
16.03.2016
Размер:
1.17 Mб
Скачать

которая является моделью взаимодействия «хищник-жертва». Два диф-

ференциальных уравнения моделируют временную динамику численности двух биологических популяций жертв y0 и хищников y1 . Предполагается, что жерт-

вы размножаются с постоянной скоростью c , а их численность убывает вслед-

ствие того, что их поедают хищники. Хищники же размножаются со скоростью,

пропорциональной количеству пищи (с коэффициентом r ), и умирают есте-

ственным образом (смертность определяется константой d ). Рассчитайте два решения для различных начальных условий (10; 8) и (10; 4), постройте графики решений и фазовые портреты.

31

РАБОТА № 6 MATHCAD: ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ

Цель работы: получение навыков программирования в пакете Mathcad.

6.1 Теоретические сведения

На одном листе Mathcad могут определяться один или несколько программных блоков. Обычно их используют при разработке функций, которые осуществляют какую-либо сложную обработку данных.

Впрограммном блоке можно читать значения переменных, определенных

вMathcad до этого блока. Однако изменить значения этих переменных внутри программного блока невозможно. Все переменные, которым присваиваются значения внутри программного блока, будут локальными переменными, которые недоступны вне блока.

Программный блок представляет собой группу операторов присваивания и управляющих операторов. Необходимо обратить особое внимание, что все ключевые слова (например, if) в этих операторах обязательно вводятся с помощью панели Programming (Программирование). Их ввод с клавиатуры – ошибка.

Втабл. 6.1 приведены управляющие операторы панели Programming.

Таблица 6.1 – Управляющие операторы панели Programming

Оператор Mathcad

Комментарий

 

 

Add line

Команда вычерчивает вертикальную линию, огра-

 

ничивающую область программы.

 

Присваивание переменной A значения B.

 

Условный оператор (оператор ветвления) if. Усло-

или

вием может быть любое логическое выражение

 

(логические операторы находятся на панели

 

Boolean). Условие должно стоять после if, а опера-

 

тор, который исполняется, если выполнено задан-

 

ное условие, – перед if.

 

Полный оператор ветвления. Otherwise – опера-

 

тор, который должен быть исполнен, если условие

32

Пример:

оператора if не выполняется.

 

 

 

Оператор цикла с параметром for. За ключевым

Пример:

словом for следует переменная-счетчик, которая

принимает значения от начального до конечного с

 

 

шагом, равным единице. Внутренние операторы

 

цикла сдвинуты немного вправо.

 

 

 

Оператор цикла с предусловием while. Внутрен-

Пример:

ние операторы цикла будут исполняться до тех

пор, пока будет истинным условие, следующее за

 

 

ключевым словом while.

 

 

continue

Оператор continue служит для преждевременного

Пример:

завершения текущей итерации цикла; сам цикл

 

при этом продолжается.

break

Оператор break служит для преждевременного за-

Пример:

вершения цикла, чтобы, например, избежать за-

 

цикливания или слишком продолжительных вы-

 

числений.

return

Оператор преждевременного завершения про-

Пример:

граммы; указанное в ячейке значение будет воз-

 

вращено.

on error

Если при вычислении выражения expr2 возникла

Пример:

ошибка, вычисляется выражение expr1.

 

 

Задание 1. Напишите программу для вычисления значений функции y

для всех значений аргумента x на заданном интервале xн , xк с заданным шагом dx с использованием операторов ветвления if и оператора цикла for.

Результат выведите на экран в виде графика.

33

1)

2)

3)

4)

5)

6)

7)

8)

34

9)

10)

11)

12)

13)

14)

15)

16)

35

17)

18)

19)

20)

Задание 2. С использованием оператора цикла while определите сумму

элементов бесконечного ряда с заранее определенной погрешностью

0,0001; x – произвольное число, определенное в программе.

 

 

x

 

 

 

 

 

1 n

 

n2

 

 

 

 

 

 

 

 

 

 

n!

 

 

 

 

n

4 x , 3.

 

8 n n2 sin 3n x ,

1.

 

 

 

,

2.

 

3

 

 

 

n 0

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

n

 

 

 

n

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

x 1

,

 

 

5. 1 n 1 e x ,

6.

5

 

x

 

,

 

 

 

 

 

4n !

 

 

n2

 

 

 

n 1

 

 

 

 

n 1

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2n 1

 

 

 

n

 

 

n 1

 

 

0,5

n

x

3 n

 

 

7.

 

 

x

 

 

 

 

, 8.

 

5

 

x

 

,

 

 

9.

 

 

 

 

 

,

 

n 1

2n 1 2n 1 !

n 1

2 n !

 

n 1

 

1 2n !

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 1 3

 

 

n x n

 

 

 

nx n

 

 

10.

 

4 n ! ,

11.

 

 

2n 1 ! ,

12.

 

 

,

 

 

 

2n 1 !

 

 

 

n 1

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

13.

 

 

 

,

 

14.

 

 

 

,

 

 

 

15. 1 n 1

,

 

n 1

2n

1 !

 

n 1 n2n

 

 

 

 

 

n 1

 

 

 

 

 

 

n4

 

36

rn 1

 

 

x

n

 

 

 

 

 

 

 

 

 

 

 

 

x

n

 

 

 

 

x

2

 

 

 

 

 

 

16.

 

 

 

 

 

,

 

 

 

17.

1 n 1

 

 

 

 

 

, 18.

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

(n 3)!

 

 

 

 

 

n 1

 

 

2n 1 3 (n 1)!

 

n 1

2n 1 !2

 

 

 

 

 

x

2n

 

 

 

x

 

 

 

 

 

 

 

 

 

e

n

 

 

19.

 

 

 

 

 

 

 

 

,

20.

 

 

 

 

,

21.

1 n

 

 

 

,

 

 

 

 

 

 

 

 

 

4n 1 4n 1

2n

 

 

n 1

n n 1 n 2 !

 

n 1

 

 

 

 

n 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn

 

 

 

 

 

 

xn

 

 

 

 

 

 

x3 n

 

 

 

 

 

 

 

22.

 

 

 

,

23.

 

 

,

 

 

 

24.

 

,

 

 

2n 1 2n 1 !

n! n 1

 

 

 

2n! 1 n 1

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25.

1 n

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

x3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример 1. Вычисление суммы ряда с определенной точностью – ти-

пичный пример использования цикла с условием.

Вычислить сумму ряда:

 

x

2n 1

 

x

3

 

x

5

 

x

7

 

x

9

 

1 n 1

 

 

x

 

 

 

 

 

 

 

...

(2n 1)!

 

 

 

 

 

 

 

 

n 1

3!

5!

7!

9!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с погрешностью 0,0001.

Суммой ряда называется предел, к которому стремится последователь-

ность частичных сумм данного ряда, если он существует. Если такой предел существует, то ряд называется сходящимся. Если | rn | | rn 1 |, где rn и rn 1

соответственно n -й и (n 1) -й члены ряда, то ряд сходится.

Будем считать, что сумма n первых членов ряда отличается от точной суммы ряда меньше чем на величину | rn 1 |. Следовательно, для получения ре-

зультата с заданной погрешностью будем накапливать частичную сумму эле-

ментов ряда, пока очередной член ряда по модулю не станет меньше заданной погрешности | rn | ε .

Вычислять элементы ряда независимо друг от друга нерационально. Для получения более эффективного алгоритма заметим, что (n 1) -й элемент ряда

может быть получен по рекуррентной формуле: rn 1 k(n) rn .

37

 

 

 

 

 

( 1)n 1 1

 

 

 

 

x2 (n 1) 1

 

 

( 1)n 2

x

2n 1

Поскольку r

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

(2

(n 1) 1)!

 

 

(2n 1)!

 

 

 

 

 

 

 

 

 

 

а r ( 1)n 1

x2n 1

 

 

, то

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

(2n 1)!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

( 1)n 2

 

 

x2n 1

 

 

(2n 1)!

 

 

 

x2

 

 

 

k(n)

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( 1)n 1

(2n 1)!

 

x2n 1

(2n 1) (2n)

 

 

 

rn

 

 

 

 

 

 

 

То есть rn 1

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

rn , (n 1, 2, 3, ...),

r1 x .

 

 

(2n 1) (2n)

 

 

Примечание.

n! 1 2 3 ... (n 1) n (n 1)!n

(n 1)! 1 2 3 ... n (n 1) n! (n 1)

(2n 1)! (2n 1)! 2n(2n 1) (2n 1)! (2n 2)!(2n 1)

38