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

Основы компьютерной математики. Задачи системного анализа и управления. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]