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

МЕТОДИЧКА ПО MAPLE и MATHCAD

.pdf
Скачиваний:
346
Добавлен:
10.05.2015
Размер:
8.75 Mб
Скачать

 

 

121

 

[Ctrl]0

Больше равно

x y

[Ctrl]9

Меньше равно

 

x y

[Ctrl]3

Не равно

A D

где x, y - действительные числа, A, D- комплексные числа, векторы или матрицы.

Вместе с функцией if можно использовать и более сложные условия, так выражение

(x<1) (x>0)

соответствует логическому «и», возвращающему 1, если х лежит внутри интервала (0,1), а выражение

(x>1)+(x<0)

логическому «или» возвращающему 1, если или х>1, или x<0.

Знаки можно вводить также после нажатия иконки

из палитры

Boolean

 

Пример применения функции if i: 1..10

h: 0.1 p: 1 q: 2

f (x,u1,u2): if (u1 u2,sin(x),cos(x)) yi : f (i h, p,q)

zi : f (i h,q, p)

т.е. yi=cos(i h), zi=sin(i h).

Функция until

Функция until используется, чтобы управлять процессом итераций. Это единственная функция Mathcad, специально предназначенная для работы с дискретным аргументом, она позволяет останавливать вычисления, когда выполняется определенное условие.

Синтаксис функции until yi+1:=until(f(i), yi), где f(i) - условие,

проверяемое на i- той итерации, yi - результат вычислений на i - той итерации.

Вычисления прекращаются, как только f(i) станет меньше нуля. Пример применения функции until (извлечь корень из 3 с погрешностью

122

err:=10-12) n:=100 i:=0..n y0:=1 err:=10-12 a:=3

Итерационная процедура вычисление корня квадратного из числа а

 

 

 

 

 

yi

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yi

y

i 1

: until

 

y2

a

err,

 

 

 

 

 

 

 

 

 

 

i

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ступенчатые и импульсные функции

Ступенчатая функция Хэвисайда Ф(х) - возвращает 1, если х 0, иначе 0.

Символ Кронекера (i,j) - возвращает 1, если i=j, и 0, если i j. С помощью функций Хэвисайда и if можно создавать различные

импульсные функции, например: p(x,w):=Ф(x)- Ф(x-w),

функция p(x,w) - равна 1 на интервале 0 х w и 0 вне него. q(x,w):=if((x u) (x v),1,0),

функция q(x,w) -равна 1 на интервале u x v и 0 вне него.

Операторы7

 

 

Операция

Обозначе-

Клави-

Описание

 

 

ние

ши

 

Суммиро-

n

[Ctrl]

Выполняет суммирова-

вание

X

[Shift]4

ние Х по i=m,m+1,...,n. Х

 

 

i m

 

может быть любым вы-

 

 

 

 

 

ражением дискретного

 

 

 

 

 

аргумента i. m и n долж-

 

 

 

 

 

ны быть целыми числа-

 

 

X

 

ми

Суммиро-

$

Выполняет суммирова-

вание по

i

 

ние Х по i. Х может быть

дискрет-

 

 

 

любым выражением

 

 

 

 

 

 

7

Часть операторов была рассмотрена ранее, в том числе матричные опера-

 

торы, знаковые операторы.

ному ар-

 

гументу

 

Произве-

n

дение

X

 

i m

Произве-

X

дение по

i

дискрет-

 

 

ному ар-

 

 

гументу

 

 

Производ-

d

f (t)

ная

 

dt

Производ-

dn

ная n-го

 

 

f (t)

dt

n

порядка

 

 

 

 

 

Интеграл b

f (t)dt

a

123

дискретного аргумента i.

[Ctrl] Выполняет перемноже- [Shift]3 ние Х по i=m,m+1,...,n. Х

может быть любым выражением дискретного аргумента i. m и n должны быть целыми числами.

[Shift]# Выполняет перемножение Х по i. Х может быть любым выражением дискретного аргумента i.

[Shift]? Возвращает производную f(t) по t. Все переменные в f(t) должны быть определены. Функция f(t) - скалярная функция скалярного аргумента.

[Shift] Возвращает производ- [Ctrl]? ную n-го порядка f(t) по t. Все переменные в f(t)

должны быть определены. Функция f(t) - скалярная функция скалярного аргумента n должно быть целым между

0 -5.

[Shift]& Возвращает определенный интеграл от f(t) по интервалу [a,b]. a, b - вещественные числа.

Все переменные в f(t) роме переменной t должны быть определены. f(t) должна быть скалярной функцией.

124

Ввод выше перечисленных операторов может быть осуществлен также следующим образом:

нажать иконку и войти в палитру операторов,

нажать кнопку, соответствующую оператору, который необходимо ввести в программу.

Палитра операторов, кроме перечисленных выше, содержит так же оператор неопределенного интеграла и операторы предельного перехода. Для того чтобы вычислить любой из этих операторов, необходимо выполнить следующую последовательность операций:

нажать кнопку соответствующего оператора в палитре опера-

торов,

ввести значение функции и переменную, по которой будет осуществлять действие оператор,

нажимая нажать сочетание клавиш [Contrl] ., или нажать на символ из палитры Symbolic8

Пример: Неопределенный интеграл

В палитре Calculus щелкаем указателем мышки по значку неопределенного интеграла и затем вводим подынтегральное выражение

8 Палитра Symbolic содержит функции, предназначенные для символьных вычислений останавливаться на них мы не будем, поскольку для символьных вычислений целесообразно использовать пакет Maple, рассмотренный выше.

Запоминаем TOL
Устанавливаем новое значение TOL
нулевое приближение решения уравнение
Ищем корни уравнения f(z)
Восстанавливаем TOL

125

cos(x)dx,

нажимаем сочетание клавиш [Contrl] .

cos(x)dx sin(x),

аналогично для предела в палитре Calculus щелкаем указателем мыш-

ки по значку предела lim, вводим выражение, предел которого ищем,

a

переменную, по которой ищем предел и ее значение

limsin(ax),

x 0 x

нажимаем сочетание клавиш [Contrl] .

limsin(ax) a

x 0 x

Решение уравнений

Для решения одного уравнения с одним неизвестным используется функция root. Аргументами функции являются выражение и переменная, входящая в выражение. Ищется значение переменной, которое обращает выражение в ноль. Функция возвращает значение переменной, которое обращает выражение в ноль.

Синтаксис функции root x:=root(f(z),z),

где f(z)=0 - скалярная функция скалярного аргумента.

При использовании данной функции необходимо задать начальное (нулевое) приближение к решению уравнения. Если уравнение имеет не один корень, то решение следует выполнить для разных начальных приближений.

Пример:

OLDTOL:=TOL

TOL:=0.00001

x:=1 x1:=4

f(z):=x2+10z-ez

xкор:=root(f(x),x) x1кор:=root(f(x1),x1) xкор=0.11 x1кор=4.037

TOL:=OLDTOL

126

Предопределенная переменная TOL задает точность решения уравнения (чем меньше TOL, тем точнее решение, однако, тем больше время решения).

Для нахождения корней уравнения, имеющего вид

n

y(x) ai xi 0, i 0

следует воспользоваться функцией polyroots, для которой не требуется задания начального приближения.

 

Синтаксис функции polyroots x:=polyroots(a),

 

где а - вектор коэффициентов полинома y(x).

Пример:

 

запоминаем TOL

OLDTOL:=TOL

TOL:=0.00001

 

устанавливаем новое TOL

f (z): z3 2 z2

5 x 2

уравнение

 

2

 

 

 

 

 

 

 

 

 

 

5

 

 

 

a:

2

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

xкор : polyroots(a)

ищем корни уравнения

 

 

3.562

 

 

 

 

 

 

 

найденное решение

xкор

0.562

 

 

 

1

 

 

 

 

 

 

 

 

TOL: OLDTOL

 

восстанавливаем старое TOL

Для решения системы уравнений необходимо выполнить следующую последовательность операций:

задать нулевое приближение для всех неизвестных, входящих

всистему уравнений,

напечатать ключевое слово Given. Оно указывает Mathcad, что далее будет решаться система уравнений,

ввести ниже Given систему уравнений. Между левой и правой частями уравнений должен стоять знак = ( [Ctrl]=),

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

127

Math подменю Matrices), введите знак присвоения (:=), напечатайте имя функции Find-, аргументами которой являются подлежащие определению неизвестные, записанные в скобках через запятую.

Пример:

OLDTOL:=TOL TOL:=0.0001

x: 0 y: 0

Given

x3 y2 sin(x) exp x2 y2 0 x y: 0.1

a

b : Find(x,y)

a 0.472

b 0.372

a3 b2 sin(a) exp a2 b2 0

TOL:=OLDTOL

начальное приближение

проверка

Решение дифференциальных уравнений

Для решения дифференциального уравнения необходимо задать:

начальные условия,

массив точек, в которых следует найти решение,

дифференциальное уравнение, записанное в специальном виде. Для решения дифференциального уравнения используется функция rkfixed, реализующая метод Рунге-Кутты четвертого порядка. Синтаксис функции rkfixed

z:=rkfixsed(y,x1,x2,n,D),

где y вектор начальных условий размерности n (n - размерность дифференциального уравнения),

x1, x2 начальная и конечная точки интервала, на котором ищется решение уравнения,

n - число точек, в которых ищется решение уравнения. При помощи этого аргумента определяется число строк (1+n) в матрице, возвращаемой функцией kfixed,

D(x,y) функция возвращает вектор размерности m-1 (m порядок дифференциального уравнения), содержащий производные до порядка m-1.

Рассмотрим решение дифференциальное уравнение первого порядка, которое в общем случае можно представить в виде:

u:=z<1> i:=0..n

128

d y F(x, y), y(0)=y0 - начальное условие, dx

где F(x,y) известная функция своих аргументов. Выражение для функции D(x,y) в этом случае будет иметь вид

D(x,y)=F(x,y). В качестве примера рассмотрим текст программы решения уравнение Бернулли

dy

x (y2 3 y),

y0 1,

 

dx

 

аналитическое выражение для решения этого уравнения известно оно для данного значения y0=1 имеет вид

 

 

 

3 x

2

 

1

y 3

4 exp

 

 

 

1 .

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

Текст программы численного решения уравнения приведен ниже: n:=100 число точек, в которых ищется решение уравнения a:=0 начальная точка интервала

b:=0.9 конечная точка интервала y0:=1 начальное условие

D(x,y):=x ((y0)2+3 y0) z:=rkfixed(y,a,b,n,D)

извлекаем из матрицы z столбец, содержащий решение уравнения задаем дискретный аргумент

h: (b a)n задаем шаг изменения аргумента x задаем дискретное значение точного решения уравнения vi : 3 4 exp 1.5 i h 2 1

относительная погрешность численного решения уравнения di : ui vi vi

График относительной погрешности численного решения

129

Решение системы дифференциальных уравнений первого порядка

Рассмотрим в качестве примера решение следующей системы уравнений

dx1

x

cos(t),

x (0) 1

dt

1

 

1

dx2 x1 exp( sin(t)), x2(0) 1 dt

или в матричном виде

d

x1

 

 

 

x1 cos(t)

 

 

 

1

 

 

 

 

 

 

 

,

x

 

 

 

dt

 

 

 

 

x

2

 

x

exp sin(t)

 

0

1

 

 

 

 

1

 

 

 

 

 

 

Текст программы численного решения системы уравнений OLDORIGIN:=ORIGIN запоминаем старое значение ORIGIN ORIGIN:=1 устанавливаем новое значение

n:=100 число точек, в которых ищется решение уравнения. a:=0 начальная точка интервала

b:=2 конечная точка интервала

1

x: начальные условия

1

 

x cos(t)

 

D(t,x):

1

 

x1

exp( sin(t))

z:=rkfixed(x,a,b,n,D)

u:=z<1>

извлекаем из матрицы z столбец, содержащий

v:=z<2 >

решение системы уравнений x1

извлекаем из матрицы z столбец, содержащий

i:=1..n

решение системы уравнений x2

задаем дискретный аргумент

h:

b a

задаем шаг изменения аргумента t

n

 

 

задаем дискретные значения точных решений системы уравнений

Ui: exp(sin((i 1) h)),

Vi: (i 1) h 1

относительные погрешности численного решения системы уравнений

d1 :

ui Ui

,

d2

i

:

vi Vi

 

 

i

Ui

 

 

Vi

 

 

 

 

ORIGIN:=OLDORIGIN восстанавливаем старое значение.

График относительных погрешностей численного решения

130

Решение дифференциальных уравнений порядка выше первого

Рассмотрим уравнение

n

n 1

i

i

d

y fi(t,y)

d

y F(t, y),

d

y(0) ai, i=0,...,n-1

n

i

i

dt

i 0

dt

dt

Введя замену переменных d yi 1 yi , преобразуем исходное уравне- dt

ние в систему уравнений

d

y

i 1

y

,

y

(0)=a , i=1,2,...,n-1

dt

 

i

 

i

i

d

 

 

 

 

 

n 1

yn 1 F(t,y0) fi (t,y0) yi

dt

 

 

 

 

 

i 0

Выражение для функции D(t,y) примет вид

 

y1

 

 

y2

 

 

 

D(t, y)

:

 

 

n 1

 

 

 

 

F(t, y0) fi

(t, y) yi

 

i 0

 

В качестве примера рассмотрим решение уравнения

d3

y 6

d2

y 12

 

d

 

y 8 y exp(2 t)

dt3

dt2

 

 

 

 

 

dt

 

y(0) 1,

d

y(0) = 3,

 

 

d2

y(0) 10

dt

 

dt2

 

 

 

 

 

 

 

Текст программы

OLDORIGIN:=ORIGIN запоминаем старое значение ORIGIN ORIGIN:=1 устанавливаем новое значение n:=100 число точек, в которых ищется решение уравнения. a:=0 начальная точка интервала

b:=2 конечная точка интервала