Тема: «ЧИСЛЕННОЕ РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ» Запишем систему нелинейных уравнений в общем виде F1(x1,x2, . . xn) = 0; F2(x1,x2, . xn) = 0; ............... Fn(x1,x2, . . xn) = 0. (1) В отличие от систем линейных уравнений, не существует прямых методов решения систем нелинейных уравнений в общем виде. Лишь в отдельных случаях их можно решить аналитически. Например, для системы двух уравнений иногда удается выразить одно неизвестное через другое и таким образом свести задачу к одному нелинейному уравнению. Обычно используются итерационные методы. Метод простых итераций Выразим неизвестные в системе (4.1) и представим ее в следующем виде x1 = f1(x1,x2, . . xn) ; x2 = f2(x1,x2, . . xn) ; ................ xn = fn(x1,x2, . . xn) (2) Зададим начальные приближения для x1, x2, . . . xn. Подставим их в правую часть системы (4.2). Получим значения неизвестных в следующей итерации. x1(k) = f1(x1(k-1),x2(k-1), . . xn(k-1)) ; x2(k) = f2(x1(k-1),x2(k-1), . . xn(k-1)) ; ................ xn(k) = fn(x1(k-1),x2(k-1), . . xn(k-1)) , где k - номер итерации. Итерационный процесс продолжается до тех пор, пока не будет выполнено условие | xi( k ) xi( k 1) | i = 1,2, . . . n, где n - количество уравнений. Если условие не выполняется, итерации повторяются , приняв xi(k-1) = xi(k). 1 Для того, чтобы не проверять условие для всех уравнений, условие окончания итераций можно записать так: max| xi( k ) xi( k 1) | i = 1,2, . . . n или n | xi( k ) xi( k 1) | i 1 Для сходимости решения важен выбор начального приближения. Та область, в которой выбор начального приближения обеспечивает сходимость численного метода, называется областью сходимости метода. Для двух уравнений эту область можно выбрать, построив графики функций x1 = f1(x2) и x2 = f2(x1) в координатах x1 и x2. Точку пересечения графиков можно принять за начальное приближение. К сожалению этого не удается сделать при большем количестве уравнений. Кроме того, при увеличении количества уравнений, область сходимости сужается, и здесь нельзя дать общих рекомендаций. Алгоритм метода простых итераций n - количество уравнений, - точность, x(n) - массив начальных приближений неизвестных Ввод n, , x Начало цикла Вычисление f1(x1,x2, . . xn) Вычисление f2(x1,x2, . . xn) ....................... Вычисление fn(x1,x2, . . xn) s | fi xi | x i = fi Конец цикла, условие s > Печать xi 2 ЗАДАНИЕ Решить систему нелинейных уравнений методом простых итераций с точностью Е=0,001. В качестве начального приближения взять точку X10=0, X20=0. Sin(X1+2)-X2=1.5 X1+Cos(X2-2)=0.5 Выполнить графическое решение. Оформить отчет. ------------------------------------------------------------------------------------------Решение в Visial Basic for Applications 1. Привести систему к виду, удобному для итерации. 2. Переименовать Лист в СНУ. 3. Перейти в среду Visial Basic for Applications и набрать программу. Система, приведенная к виду, удобному для итерации: x1 = 0.5 - Cos(x2 - 2) x2 = Sin(x1 + 2) - 1.5 Sub iter_CNY() x10 = Val(InputBox("Ввести x10", "Ввод x10")) x20 = Val(InputBox("Ввести x20", "Ввод x20")) e = 0.001: K = 0 Do x1 = 0.5 - Cos(x20 - 2) x2 = Sin(x10 + 2) - 1.5 S = Abs(x1 - x10) + Abs(x2 - x20) x10 = x1 x20 = x2 K=K+1 Loop While S> e Worksheets("СНУ").Range("a2").Value = x1 Worksheets("СНУ").Range("b2").Value = x2 Worksheets("СНУ").Range("c2").Value = K End Sub Для запуска программы нажать на Run. Полученный результат находится на листе CНУ в ячейках A2:C2. x1 x2 k 1,346306 -1,70332 29 3 Графическое решение 1. Введите комментарий в ячейки 2. Введите значения от -10 до 10 с шагом 1 в ячейки E2:E22 и G2:G22 3. В F2:F22 ввод формулы = 0.5 - Cos(x2 - 2) 4. В H2:H22 ввод формулы = Sin(x1 + 2) - 1.5 5. По данным E2:F22 строим точечную диаграмму. 6. Выделяем полученную диаграмму. В контекстном меню Выбрать данные.. 7. Далее Добавить. В появившемся окне указываем следующее 4 8. Отформатировать полученную диаграмму. 5 Варианты заданий Решить систему нелинейных уравнений с точностью до 0,001. Принять начальное приближение в методе итераций Х 1 0; Х 2 0, в Visual Basic for Applications (VBA), в таблице Excel. Оформить отчет. 1. sin( x1 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 1) x2 2 x1 1,2 cos x 2 cos( x1 1) x1 x2 3 2x2 cos( x 2 1) cos x1 2 x1 0,5 cos x 2 sin x1 2 2 x1 x2 0,7 1,5 sin( x 2 0,5) 1 sin( x1 0,5) x2 1 cos( x 2 2) x1 0 0,5) x2 0,8 cos( x1 sin x 2 2 x1 1,6 sin( x1 1) 1,3 x 2 x1 sin( x 2 1) 0,8 2x2 cos( x1 1) 0 x1 sin x 2 0,4 cos( x1 0,5) sin x 2 sin( x1 x1 x2 cos( x 2 cos( x 2 x2 x1 1,2 cos x1 2 1) 0,5 x1 cos x1 3 2 x1 2 sin x 2 cos( x1 1) cos x 2 2x2 1,5 2) 0,5 1) 2x2 2 2 x1 1 2) sin( x 2 x2 x2 0,7 x1 1,5 sin( x1 sin( x 2 0,5) cos( x1 2) 0,5) 1 x1 1 x2 0 16. cos( x 2 sin x1 x2 18. 1) 0,8 2 x1 cos( x 2 1) 0 x2 sin x1 0,4 x2 0,5) cos( x1 2) 0,5 sin( x1 1) 2 x1 29. 30. x2 0,8 1,6 1) x1 1 x2 1,2 sin( x 2 0,5) 2 0,5) x2 1,2 2) x1 0 cos( x 2 cos( x1 0,5) sin x 2 x2 2 x1 sin( x1 1) x1 2x2 cos( x 2 x2 1,5 1) 1 1) x1 1 cos x1 2 1) 0,8 x1 cos x1 cos( x1 1) sin x 2 1 2 x2 sin( x 2 sin( x 2 2 2x2 cos( x 2 1 2 cos x 2 sin( x1 28. x2 cos x 2 sin x1 2 x1 27. 1 x1 1,5 cos x1 26. 2 2) x1 23. x1 2x2 cos( x1 1) 22. 25. sin( x1 sin( x 2 21. 1,6 x1 1,3 sin x1 20. 0,8 1) cos( x 2 19. x1 2x2 sin( x 2 17. 24. 0,5) 2 x2 1 2 x1 1,6 6