Раздел: Документация
0 ... 69 70 71 72 73 74 75 ... 117 Тогда корень может быть вычислен любой из команд »Root- full new(f exln, 7.4)У. Форма А »Root= full new(f exln, 7.4,tni) У, Форма В »Root= full new(f exln, 7.4,tni, tol) X Форма С »Root= full new(f exln, 7.4,tni, tol, hi)/, Форма D где tni - общее число требуемых (скажем, 12) итераций с начальным значением х= 7.4, tol - условие остановки вычислений при достижении заданной точности: -F(:e) < tol (скажем, 1.0Е-4) и hi определяет, нужно ли показывать результаты промежуточных итераций (hi = 1 означает «да», hi = 0 означает «нет»). При выполнении форм А-С выводится результат только последней итерации (т. е. hi = 0); если tni и tol не заданы, то по умолчанию им присваиваются значения 20 и 1.0Е-3 соответственно. 15.2. 1D: Метод 2 - метод Гаусса-Якоби Для применения метода Гаусса-Якоби нужно преобразовать исходное уравнение F(x) = Ок виду х = G(x), а сам он представляет итерации =Q(xW)tдля п = 0,1,2..... М-файл gauss ja.mсодержит программу этого метода. Обращение к ней аналогично обращению к full n.ew.rn, за исключением подготовки М-файла-функции. Так, пример 1, приведенный выше, можно решить следующим образом (аналогично full new.m) » Root = gauss ja(f exlg, 7.4)У. A >> Root = gauss ja(f exlg, 7.4, tni, tol, hi) X D с помощью укороченного в заглавииМ-файла-функции f .exlg.ra function G = fun name( P ) ; /, Пример 1 x = PCD;/• Метод Гаусса - Якоби R = 18 - x~3 + 10*x"2; G = R / 27;/, Следующее также подходит: У. R 10*х~2-27*х+18;У, Промежуточная величина X G = sign(R)*abs(R)*(l/3) ; У. Иатользуйте SIGN, чтобы У, избежать комплексных X значений где первая строка не содержит [ ]1К Позже вы увидите, что такая функция G приводит к плахой сходимости. Замечание. Функция G(x) не определяется однозначно. Мы даже метод Ньютона можем рассматривать как метод Гаусса-Якоби, в котором G(x) = х - F(x)/F(x). В приведенном выше примере 1 функцию F(x) ™х3 - Юж2 + 27а:-18 = 0 можно переписать в виде х = G{x) с G(x) = (18 + Юх - х3)/27; но и это представление не единственно, поскольку G(x) = (Юж2 - 27а; + 18)~/-J предоставляет другую возможность. 15.3. 1D: Анализ сходимости Ни метод 1, ни метод 2 не работают хорошо всегда. Когда метод не работает, имеются две возможности: (1) метод плох, и мы должны найти более подходящий; (2) начальное приближение было выбрано слишком далеко от искомого, и это можно до некоторой степени исправить. Плохая работа метода обычно означает медленную сходимость и является знаком его низкого качества - тогда следует пойти по пути (1). Ниже мы надеемся проанализировать обе эти возможности. 15.3.1. Область поиска Под «областью поиска» мы понимаем область, содержащую искомые корни. Областью поиска может быть R -=. (-оо,+оо), но мы надеемся сделать менее протяженный диапазон. Большая часть задач приходит из практики, и поэтому можно выбирать «область поиска», исходя из априорных знаний; например, отрезок [1,10] может быть хорошей областью поиска, когда х представляет собой рост человека в футах. В нашем случае уравнения с одной переменной, т. е. уравнения F(x) = 0 можно получить некоторое представление о корнях F(x) на интервале [а, 6], воспользовавшись командой MATLABa plot. Рассмотрим Пример 2 Пусть F(x) = (2 - sina:)(a;3 - Юх2 + 27а: - 18) = 0- (15.2) 1) То есть у функции G(P) только один выходной аргумент. - Прим. перев. Рис. 15.1. Выбор области поиска. Для этого примера выполните » х = 0.5 : 0.01 : 6.5; » F = (2-sin(x)) .* (х.-З - 10*х."2 + 27*х - 18) ; » plot(x,F, х,zeros(size(х)) ) ; grid чтобы построить график, подобный изображенному на рис. 15.1. Теперь можно заметить, что все корни находятся примерно на отрезке [0,7], и поэтому [0,7] является подходящей областью поиска для начального приближения х = х°К 15.3.2. Область сходимости Область сходимости метода определяется как множество всех начальных точек из области поиска, для которых может быть получено сходящееся решение. Ясно, что область сходимости вложена в область поиска. Чтобы найти такую область сходимости, нужно перебрать в качестве начальных «все» точки области поиска и запомнить те, для которых соответствующие последовательности сошлись к решению. На практике рассматривают лишь точки, взятые с некоторым шагом. Например, для области поиска [0,8] из примера 1 мы можем проверить в качестве начальной точки х<0 = 0, 1/8, 2/8, ... , 8 - 1/8, 8; здесь использован шаг длины Ах = 1/8 = 0.125. В обозна- 0 ... 69 70 71 72 73 74 75 ... 117
|