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

MathCAD-lections

.pdf
Скачиваний:
21
Добавлен:
10.02.2016
Размер:
1.16 Mб
Скачать

Лекция 9

41

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

Рис. 17. Решение СЛАУ использованием вычислительного блока Given/Find.

Задание начальных условий необходимо, так как решающий блок Given/Find использует итерационные методы вычислений.

Корни СЛАУ, полученные всеми тремя методами должны совпадать.

Встроенные операторы суммирования и произведения.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оператор

 

 

Клавиши

 

Описание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<Ctrl>+<Shift>+<4>

 

Сумма

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<Shift>+<4>

 

Сумма ранжированной переменной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<Ctrl>+<Shift>+<3>

 

Произведение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<Shift>+<3>

 

Произведение

ранжированной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

переменной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эти операторы

вводятся нажатием

соответствующих кнопок

на панели Calculus

(Вычисления)

,

которая

вызывается

с

панели

Math

(Математика).

41

Лекция 9

42

Функция условия if( )

Функция условия позволяет задавать варианты вычислений в зависимости от выполнения условия. Она имеет вид: if(cond, x,y), где cond – логическое условие, х, – значение,

возвращаемое, если условие истинно, у – значение, возвращаемое, если условие ложно (Рис. 18.).

t := 0 , 0.02π .. 2π

f (t) := if (t ≤ π , sin(t) , −sin(t))

1

 

 

 

f(t)

 

 

 

0

 

 

 

1

0

5

10

 

 

t

 

Рис. 18. Функция условия.

На Рис. 18 показан способ, при котором функция условия вводится с клавиатуры.

Возможен другой способ задания условной функции при помощи панели инструментов

Programming (Программирование) (Рис. 19), которая вызывается с панели Math (Математика).

Рис. 19. Панель инструментов Programming (Программирование)

Чтобы задать условную функцию, на панели инструментов Programming (Программирование) нужно нажать кнопку Add Line (Добавить строку программы), после чего вставляется вертикальная черта с двумя местозаполнителями.

В верхний местозаполнитель нажатием кнопки if вставляется функция условия if, а в нижний местозаполнитель нажатием соответствующей кнопки вводится ключевое слово otherwise, (которое переводится: «в остальных случаях»). В появившиеся местозаполнители вводятся условные и вычислительные выражения (Рис. 20), так что верхняя строка имитирует выполнение условия, а нижняя строка имитирует альтернативный вариант.

42

Лекция 9

43

f (t) :=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (t) :=

 

 

 

if

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

otherwise

 

 

 

 

f (t) :=

 

sin(t)

if t ≤ π

 

 

 

sin(t)

otherwise

Рис. 20. Условная функция, задаваемая с панели инструментов Программирование.

Условная функция позволяет задавать как одно, так и несколько условий (Рис. 21 – 22).

t := 0 , 0.02π .. 3π

 

 

 

 

 

f (t) := if

 

t ≤ π

, sin(t) , if

 

t 2π , −sin(t) ,

5

 

 

 

t

 

 

 

 

 

 

1

 

 

 

f(t)

 

 

 

0

 

 

 

1

0

5

10

 

 

t

 

Рис. 21. Условная функция с двумя ветвлениями, введенная с клавиатуры.

f (t) :=

f (t) :=

 

if

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if

 

 

 

 

 

 

 

 

 

 

 

 

otherwise

 

 

f (t) :=

sin(t)

if

t ≤ π

 

sin(t)

if

π < t 2π

5

otherwise

t

1

 

 

f(t)

 

 

0

 

 

1 0

5

10

 

t

 

Рис. 22. Условная функция с двумя ветвлениями, заданная с панели Программирование.

43

Лекция 9

44

Каждая новая ветвь добавляется с панели Программирование нажатием кнопки Add Line, ниже того места, где находится курсор.

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

например, массив х определен с помощью ранжированной переменной i

i := 0.. 10

xi := i + (−2)i

и содержит как положительные, так и отрицательные элементы. Для того чтобы подсчитать сумму только отрицательных элементов, можно использовать условную функцию (Рис. 23.):

S := if(xi < 0,xi,0) i

S = −657

Рис. 23 Использования условной функции с ранжированной переменной

Знаковые функции

Знак числа

sign(x)

х – действительное число.

Знак числа

signum (x)

х – действительное число.

0, если х=0,

возвращает 1, если х>0, -1 в остальных случаях.

1, если х ≥ 0,

возвращает

-1 в остальных случаях.

sign(0)

= 0

signum(0)

= 1

sign(5)

= 1

signum(5)

= 1

sign(−5) = −1

signum(−5) = −1

Рис. 24. Примеры знаковых функций.

Алгебраические уравнения

Одно уравнение с одним неизвестным

Рассмотрим одно алгебраическое уравнение с одним неизвестным х, вида:

f(x) = 0

(3),

например, sin(x) = 0.

Для решения таких уравнений MathCAD имеет встроенную функцию root( ), которая, в

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

root(f(х),х);

root(f(х),х,а,b);

44

Лекция 9

45

f(х) —

скалярная функция, определяющая левую часть уравнения (3);

х — скалярная переменная, относительно которой решается уравнение;

а,b — границы интервала, внутри которого происходит поиск корня.

В первом случае необходимо задать начальное значение переменной х, просто предварительно присвоить х некоторое число. Корень уравнения ищется вблизи этого числа.

Присвоение начального значения требует априорной информации о примерной локализации корня.

На Рис. 25 приведен пример решения уравнения sin(x) = 0,при начальном приближении х = 0,5.

x := 0.5

f(x) := sin(x)

solution := root(f(x) ,x)

solution = 0

Рис. 25. Поиск корня нелинейного алгебраического уравнения.

Хотя уравнение имеет бесконечное множество корней xn = n×π (n = 0, ±1, ±2,...), MathCAD находит только один из них, х = 0, наиболее близкий к начальному приближению х=0.5.

Если задать другое начальное значение, например х = 3, то решением будет другой корень уравнения х = π и так далее.

Таким образом, для поиска корня требуется его предварительная локализация. Это связано с особенностями численного метода решения уравнения - метода секущих.

Если уравнение неразрешимо, то будет выдано сообщение об ошибке.

Иногда удобнее задавать не начальное приближение к корню, а интервал [а,b], внутри которого корень заведомо находится. В этом случае следует использовать функцию root( ) с

четырьмя аргументами (Рис. 26.). Начальное значение х присваивать не нужно, так как поиск корня осуществляется на интервале [а,b]. Функцию f(х) можно записать в теле функции root( ) в явном виде (Рис. 26.).

Рис. 26. Поиск корня алгебраического уравнения на заданном интервале.

45

Лекция 9

46

Когда root( ) имеет четыре аргумента, следует помнить о двух ее особенностях:

внутри интервала [а,b] не должно находиться более одного корня, иначе будет найден один из них, заранее неизвестно, какой именно;

значения f(а) и f(b) должны иметь разный знак, иначе будет выдано сообщение об ошибке.

Если уравнение не имеет действительных корней, но имеет мнимые, то их также можно найти.

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

Рассмотрим решение системы нелинейных уравнений. Для простоты предположим, что система состоит из N уравнений с N неизвестными:

f1(x1, ... ,хN) = 0,

. . .

(4)

fN(x1, ... ,хN) = 0,

Здесь f1(x1, ... ,хN) , ..., fN(x1, ... ,хN) — некоторые скалярные функции от скалярных переменных

х1, х2, ... хN.

Для решения систем в MathCAD используется специальный вычислительный блок

Given/Find, состоящий из трех частей, идущих последовательно друг за другом:

Given – ключевое слово;

система, записанная логическими равенствами;

Find(x1... ,хN) — встроенная функция для решения системы относительно переменных

х1, х2, ... хN.

Логический знак равенства следует вставлять с панели инструментов Boolean (Булевы операторы) или с клавиатуры сочетанием клавиш <Ctrl>+<=>.

Блок Given/Find использует для поиска решения итерационные методы, поэтому, как и для функции root, требуется задать начальные значения для всех х1, х2, ... хN до ключевого слова Given.

Функция Find( ) возвращает вектор, составленный из корней системы (4). Таким образом, число аргументов функции Find( ) должно быть равно числу неизвестных.

На Рис. 27. приведен пример решения системы двух уравнений с двумя неизвестными.

46

Лекция 9

47

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 27. Решение системы уравнений.

В первых двух строках вводятся функции, определяющие левые части уравнений системы.

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

Следующая строка показывает содержание вектора v, т. е. решение системы. Элемент вектора v0 есть первый аргумент функции Find( ), то есть неизвестное х, элемент v1– второй аргумент функции Find( ), то есть неизвестное у.

Уравнения системы можно записывать непосредственно внутри вычислительного блока, то есть не определять заранее функции f(x,y) и g(х,у), а сразу написать:

Given

 

 

 

 

 

 

x 4

+

y

2

 

 

 

3

 

 

 

 

 

 

 

 

x

+

2 y

 

 

 

0

 

 

 

В вычислительный блок можно добавить дополнительные условия в виде неравенств.

Например, ввод ограничения на поиск только отрицательных значений х приведет к нахождению другого корня (Рис. 28).

x := 1

y := 1

 

 

given

 

 

 

 

 

 

x4 + y2

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

x + 2y

 

0

 

 

 

 

 

 

 

 

 

x < 0

 

 

 

 

 

 

v := find(x ,y)

Дополнительное неравенство

 

 

 

 

 

 

1.269

 

 

v =

 

 

 

 

 

 

0.635

 

 

Рис. 28. Решение системы уравнений и неравенств.

47

Лекция 9

48

Несмотря на те же начальные значения, мы получили другой корень. Это произошло именно благодаря дополнительному неравенству в блоке Given/Find.

Если система не имеет решения (несовместна), MathCAD выдаст сообщение об ошибке, гласящее, что решения не найдено, и предложение попробовать поменять начальные значения.

Вычислительным блоком Given/Find можно найти и корень одного уравнения с одним неизвестным.

В этом случае система считается состоящей из одного уравнения. Единственным отличием будет то, что функция Find( ) возвращает скаляр, а не вектор (Рис. 29.).

Рис. 29. Поиск корня уравнения с одним неизвестным с помощью блока Given/Find.

48

Лекция 9

49

Лекция 9 MathCAD Интегрирование и дифференцирование. Символьные вычисления. Файлы данных.

Численные вычисления

Численные вычисления имеют своим результатом одно или несколько чисел.

Численное интегрирование

Численное интегрирование в MathCAD реализовано в виде оператора определенного интеграла, позволяющего вычислять интегралы от скалярных функций в скалярных пределах интегрирования.

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

Операторы численного интегрирования

Чтобы вычислить определенный интеграл, следует напечатать его оператор с помощью панели Calculus (Вычисления) (Рис. 1) нажатием кнопки со значком определенного интеграла, или сочетанием клавиш <Shift>+<7> (&).

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

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

например, той же самой панелью Calculus (Вычисления). Чтобы ввести минус бесконечность,

нужно добавить знак минус к символу бесконечности, как к обычному числу.

Рис. 1. Оператор интегрирования.

Чтобы получить результат интегрирования, следует ввести знак равенства (Рис. 2).

49

Лекция 9

50

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2. Численное вычисление определенного интеграла.

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

Рис. 3. Интегрирование функции двух переменных по разным переменным.

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

Пример присваивания пользовательской функции g(α) значения определенного интеграла и вычисления нескольких ее значений приведен на Рис. 4.

Рис. 4. Использование оператора интегрирования в функции пользователя.

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]