Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы компьютерной математики. Задачи системного анализа и управления. Учебное пособие
.pdf
2. ОСНОВЫ МАТЕМАТИЧЕСКИХ РАСЧЕТОВ
2.1. Решение уравнений и неравенств
В Mathcad реализовано три принципиально различных подхода к реше-
нию уравнений: использование символьных преобразований, применение
численных алгоритмов и графический метод.
Рассмотрим символьный метод решения уравнений. Аналитическое решение задач имеет массу преимуществ перед решением численным. В этом
случае ответ может быть вычислен без какой-либо погрешности. При получении результата в виде аналитического выражения имеются куда более широкие возможности его последующего использования. Впрочем, с учетом
склонности символьного процессора делать ошибки (потеря части корней),
аналитическое решение стоит проверять с помощью графического метода.
Для аналитического решения уравнений в системе Mathcad существует
специальный оператор solve. Если правая часть уравнения представляет собой 0, то достаточно ввести лишь его левую часть. При этом выражение будет автоматически приравнено к нулю. Лучше всего Mathcad справляется с
поиском корней алгебраических полиномов, находя все корни – как действительные, так и мнимые (рис. 2.1).
При решении полиномиального уравнения степени выше, чем четыре,
символьный процессор задействует численный метод. В результате корни
будут найдены в форме чисел с плавающей точкой.
Часто в ответах могут быть получены специальные функции. Для приведения ответа к числовой форме используется оператор float (рис. 2.1).
Как известно, большинство тригонометрических уравнений имеет бесконечное множество решений. Mathcad же находит корни только на промежутке одного периода соответствующей уравнению тригонометрической
функции. Чтобы изменить промежуток рассмотрения, следует использовать
оператор assume (рис. 2.2).

42
2. Основы математических расчетов
Рис. 2.1. Решение уравнений с помощью оператора solve
Рис. 2.2. Решение тригонометрических уравнений с помощью оператора solve
Пример 2.1. Решить показательные уравнения и проверить графически
решения (рис. 2.3).
Для решения первого уравнения необходимо самостоятельно определить
область изменения неизвестной, т. к. без этой подсказки Mathcad с решением
не справляется.
tan x( )
1
2
− solve
2
atan 2( )−→
x3x2+ 2x+ x 2+( ) x21+
( )
+ solve
1−
1
4
−
15
4
i−
1
4
−
1
4
15 i+
→
x 2x−− solve
LambertW ln 2( )( )
ln 2( )
→ float 3 0.641→

2. Основы математических расчетов
43
Рис. 2.3. Решение показательных уравнений с помощью оператора solve
При проверке выявлено, что два корня при решении второго уравнения потеряны. Используя трассировку, можно найти оставшиеся два
корня.
Пример 2.2. Определить, когда тело, брошенное вертикально вверх с
начальной скоростью 40 м/с, окажется на высоте 60 м.
Решение: зададим начальную скорость V, высоту h и ускорение g, запишем зависимость изменения высоты от времени, решим полученное уравнение и проверим графически его решение (рис. 2.4).
С помощью Mathcad’а можно получать решения уравнений численно.
Однако получаемое при использовании численного метода значение корня
в виде числа с плавающей точкой гораздо менее информативно, чем выражение аналитического решения. Поэтому обычно численный метод используется, если Mathcad не может решить уравнение аналитически.
8.412x
7−
0.24x
1−
3
x2−
12
x
11
−
solve
assume x 0
4.0→
f x( ) 8.412x
7−
0.24x
1−
3
x2−
12
x
11
−=
2 3+
( )
x22x− 1+
2 3−
( )
x22x− 1−
+
4
2 3−
− solve 1.0→
g x( ) 2 3+
( )
x22x− 1+
2 3−
( )
x22x− 1−
+
4
2 3−
−=
0 5 10
10−
5−
5
f x( )
x
1− 0 1 2 3
10−
10
g x( )
x

44
2. Основы математических расчетов
Рис. 2.4. Определение высоты полета тела
Пример 2.3. Найти численно нули функции
с помощью функции root.
Решение: для оценки местоположения корней построим график функции
f(x), зададим начальное приближение поиска, используем встроенную функцию root(f(x), x) для нахождения нулей функции (рис. 2.5).
Функция root(f(x), x) в данном случае возвращает значение корня бли-
жайшее к начальному приближению. Это происходит не всегда. Если
начальное приближение выбрано неудачно, и значение производной в этой
точке близко к нулю, то найденный корень может быть не ближайшим к
начальному приближению.
Меняя начальное приближение, можно найти другие корни данной функ-
ции.
Для нахождения корня некоторого уравнения на отрезке [a, b] проще вос-
пользоваться функцией root с четырьмя аргументами:
,
где a и b – границы рассматриваемого промежутка. При этом функция f(x)
должна быть непрерывной на данном отрезке, и ее значения на концах
V 40
m
s
=
h 60m=
g 9.807
m
s
2
=
0 2 4 6 8
20
40
60
80
V t
g
2
t2−
h
T
0
T
1

2. Основы математических расчетов
45
отрезка должны быть противоположных знаков. Задавать начальное приближение для корня не нужно (рис. 2.5).
Рис. 2.5. Нахождение нулей функции с помощью root
Функция root(f(x), x, a, b) позволяет также находить нули функции f(x) на
[a, b] символьно, т. е. применяя символьный оператор вывода (рис. 2.5).
Для численного поиска корней полиномов
имеется встроенная функция polyroots(a). Аргументом функции является
вектор коэффициентов полинома
. Отметим, что чем выше степень по-
линома, тем с меньшей точностью будут найдены корни. Вектор коэффициентов можно создавать с помощью оператора coeffs, расположенного на панели Symbolic.
Пример 2.4. Численно найти все корни следующих полиномов:
9− 7− 5− 3− 1− 1 3 5 7
0.4−
0.2−
f x( )
x 1−=
root f x( ) x ( ) 1.571−=
root f t( ) t 1− 3 ( ) 1.572=
root f t( ) t 9− 3− ( )
5
2
−
3
2
−
→

46
2. Основы математических расчетов
Решение представлено на рисунке 2.6.
Решая неравенства, Mathcad нередко не справляется с задачей или просто ошибается. Поэтому ответ необходимо проверять графически. Для решения неравенств можно использовать оператор solve.
Пример 2.5. Решить неравенства и выполнить проверку решений:
Решение неравенств выполним с помощью оператора solve. Решением
первого неравенства является множество
вто-
рого – интервал
(рис. 2.7). Для второго неравенства, используя опера-
тор simplify, ответ привели к более простому виду.
Рис. 2.6. Нахождение корней полинома с помощью функции polyroots
Для проверки правильности решения Mathcad’ом неравенства построим
графики функций
a
9−
1
2
3−
1
=
polyroots a( )
1.203−
0.803 1.496i+
0.803 1.496i−
2.596
=
b x22+
( )
x 3−( ) x 1+( ) 3x 2−( ) x 3+( )
2
− x5+ coeffs
12
5
34−
18−
3−
1
→=
polyroots b( )
1.749− 1.491i−
1.749− 1.491i+
0.606−
0.574
6.53
=

2. Основы математических расчетов
47
При
график функции
пересекает
или расположен ниже оси Ox, при
график функции
распо-
ложен ниже оси Ox. Следовательно, неравенства решены верно (рис. 2.7).
Рис. 2.7. Решение неравенств
4x2x+ 1+
3 2x− x2−
1 solve 1 x x 3− 1− x
2
5
→
4
x2x− 1+
8x solve
5 ln 2( ) 9 ln 2( )−
4 ln 2( )
x
9 ln 2( ) 5 ln 2( )+
4 ln 2( )
→
4
x2x− 1+
8x
solve
simplify12
x 2→
7− 5− 3− 1− 1 3 5 7
20−
10−
10
4x2x+ 1+
3 2x− x2−
1−
0
3− 1
x
2
5
1− 0.5− 0 0.5 1 1.5 2 2.5 3
20−
10−
10
4
x2x− 1+8x
−
x

48
2. Основы математических расчетов
2.2. Решение систем уравнений и неравенств
Одним из способов решения систем линейных уравнений является при-
менение встроенной функции lsolve(A, B), где A – основная матрица, а B –
вектор свободных членов системы.
Пример 2.6. Решить систему линейных уравнений с помощью функции
lsolve
Решение: определим основную матрицу и вектор свободных членов си-
стемы. Расчет проведем численно и аналитически (рис. 2.8).
Рис. 2.8. Решение системы уравнений с помощью функции lsolve
С помощью символьного процессора Mathcad можно получить аналити-
ческое решение системы уравнений или неравенств. Сделать это можно
двумя способами: с помощью оператора solve и с помощью вычислительного
блока Given – Find.
Пример 2.7. Найти решение системы уравнений с помощью оператора
solve.
Решение: вводим систему уравнений в виде вектора размера 2x1, исполь-
зуя логический знак равенства; применяем оператор solve, вводя в правый
маркер через запятую переменные, относительно которых решаем систему
(рис. 2.9). Получаем два решения системы:
A
1
0
2−
12
7
2
0
1−
5
=
B
1
2
3
=
lsolve A B ( )
1.951−
0.246
0.279−
=
lsolve A B ( )
119
61
−
15
61
17
61
−
→

2. Основы математических расчетов
49
Далее необходимо провести проверку полученных решений. Для этого
построим графики функций
и
, точки пересечения данных графи-
ков и являются решениями системы уравнений. Значит, решения найдены
правильно.
Рис. 2.9. Решение системы уравнений с помощью функции solve
Аналогично находится решение системы неравенств (рис. 2.10). Если
оператор solve не справляется с поиском совместного решения системы неравенств, то необходимо найти решение каждого неравенства отдельно, а затем – общее. Проверку также осуществляем графически.
Для решения системы уравнений с помощью решающего блока Given –
Find, необходимо ввести вводное слово Given, ниже – уравнения системы,
используя для знака равенства в уравнениях знак логического равенства,
расположенного на панели Boolean, далее – функцию решения систем уравнений Find(x1, x2, ...), где в скобках через запятую указываются переменные,
относительно которых осуществляется поиск решения системы. Заметим,
что строки между Given и Find по всей ширине рабочего листа являются
2− 0 2 4 6
5−
5
10
3
8
Y1x( )
Y2x( )
5
x

50
2. Основы математических расчетов
зоной решающего блока и для корректной работы программы должны содержать только уравнения системы и ограничения на переменные в виде неравенств.
Рис. 2.10. Решение системы неравенств с помощью функции solve
Если в качестве оператора вывода результата работы функции
Find(x1, x2, ...) использовать оператор символьного вывода « → », то получим аналитическое решение системы уравнений, при этом будет возвращена
матрица, столбцами которой являются решения системы.
Для численного метода решения сначала следует определить начальные
приближения, а для вывода результата после функции
Find(x1, x2, ...) следует ввести оператор численного вывода « = ».
Пример 2.8. Решить систему уравнений методом решающего блока сим-
вольно и численно:
Решение: внутри блока Given – Find вводим уравнения системы, в первом
случае для получения результата используем оператор вывода
« → ». Вследствие чего найдено четыре решения системы (рис. 2.11):
x 3+( )
1
4
3
2
x 1+
2
x− 2−
+ 4
solve x 3− x log
2 7
4
1+ 2
→
a log
2 7
4
1+ 2
=
5− 4− 3− 2− 1− 0 1 2 3 4 5 6 7
3−
2−
1−
1
4
x 3+ 3−
2
x 1+2x− 2−
+ 4−
a
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
