|
||||||||||||
|
||||||||||||
|
|||||||||
МЕНЮ
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА - РЕФЕРАТЫ - Расчетно-графическая работаРасчетно-графическая работа§1. ЧИСЛЕННОЕ РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ. 1п. Общий вид нелинейного уравнения F(x)=0 Нелинейные уравнения могут быть двух видов: Алгебраические anxn + an-1xn-1 +… + a0 = 0 Трансцендентные- это уравнения в которых х является аргументом тригонометрической, логарифмической или показательной функции. Значение х0 при котором существует равенство f(x0)=0 называется корнем уравнения. В общем случае для произвольной F(x) не существует аналитических формул определения корней уравнения. Поэтому большое значение имеют методы, которые позволяют определить значение корня с заданной точностью. Процесс отыскания корней делиться на два этапа: Отделение корней, т.е. определение отрезка содержащего один корень. Уточнение корня с заданной точностью. Для первого этапа нет формальных методов, отрезки определяются или табуляцией или исходя из физического смысла или аналитическими методами. Второй этап, уточнение корня выполняется различными итерационными методами, суть которых в том, что строится числовая последовательность xi сходящихся к корню x0 Выходом из итерационного процесса являются условия: |f(xn)|?? |xn-xn-1|?? рассмотрим наиболее употребляемые на практике методы: дихотомии, итерации и касательных. 2 п. Метод половинного деления. Дана монотонная, непрерывная функция f(x), которая содержит корень на отрезке [a,b], где b>a. Определить корень с точностью ?, если известно, что f(a)*f(b)<0 Суть метода Данный отрезок [a,b] делится пополам, т.е. определяется x0=(a+b)/2, получается два отрезка [a,x0] и [x0,b], далее выполняется проверка знака на концах, полученных отрезков для отрезка, имеющего условия f(a)*f(x0)?0 или f(x0)*f(b)?0 снова проводится деление пополам координатой х, снова выделение нового отрезка и так продолжается процесс до тех пор пока |xn-xn-1|?? Приведем ГСА для данного метода 3п. Метод итерации. Дана непрерывная функция f(x), которая содержит единственный корень на отрезке [a,b], где b>a. Определить корень с точностью ?. Суть метода Дано f(x)=0 (1) Заменим уравнение (1) равносильным уравнением x=?(x) (2). Выберем грубое, приближенное значение x0 , принадлежащее[a,b], подставим его в правую часть уравнения (2), получим: x1= ?(x0) (3) , далее подставим х1 в правую часть уравнения (3) получим: x2= ?(x1) (4) x3= ?(x2) (5) Проделаем данный процесс n раз получим xn=?(xn-1) Если эта последовательность является сходящейся т.е. существует предел x* =lim xn , то данный алгоритм позволяет определить искомый корень. Выражение (5) запишем как x*= ?(x*) (6) Выражение (6) является решением выражения (2), теперь необходимо рассмотреть в каких случаях последовательность х1…хn является сходящейся. Условием сходимости является если во всех токах x принадлежит [a,b] выполняется условие: Приведем ГСА для метода итерации: 4 п. Метод касательных (Ньютона). Дана непрерывная функция f(x), которая содержит единственный корень на отрезке [a,b], где b>a при чем определены непрерывны и сохраняют знак f`(x) f``(x). Определить корень с точностью ?. Суть метода Выбираем грубое приближение корня х0 (либо точку a, либо b) Наити значение функции точке х0 и провести касательную до пересечения с осью абсцисс, получим значение х1 Определить значение функции в точке х1, через эту точку провести касательную получим точку х2 Повторим процесс n раз Если процесс сходящийся то xn можно принять за искомое значение корня Условиями сходимости являются: |f(xn)|?? |xn-xn-1|?? Приведем ГСА метода касательных: 5п. Задание для РГР Вычислить корень уравнения На отрезке [2,3] с точностью ?=10-4 методами половинного деления, итерации, касательных. 6 п. Сравнение методов Эффективность численных методов определяется их универсальностью, простотой вычислительного процесса, скоростью сходимости. Наиболее универсальным является метод половинного деления, он гарантирует определение корня с заданной точностью для любой функции f(x), которая меняет знак на [a,b]. Метод итерации и метод Ньютона предъявляют к функциям более жесткие требования, но они обладают высокой скоростью сходимости. Метод итерации имеет очень простой алгоритм вычисления, он применим для пологих функций. Метод касательных применим для функций с большой крутизной, а его недостатком является определение производной на каждом шаге. ГСА головной программы, методы оформлены подпрограммами. Программа по методам половинного деления, итерации и метода Ньютона. CLS - a = 2: b = 3: E = .0001 DEF FNZ (l) = 3 * SIN(SQR(l)) + .35 * l - 3.8 F1 = FNZ(a): F2 = FNZ(b) IF F1 * F2 > 0 THEN PRINT "УТОЧНИТЬ КОРНИ": END GOSUB 1 x0 = a IF ABS((-3 * COS(SQR(x))) / (.7 * SQR(x))) > 1 THEN PRINT "НЕ СХОДИТСЯ" DEF FNF (K) = -(3 * SIN(SQR(x)) - 3.8) / .35 GOSUB 2 x0 = b F = FNZ(x0) DEF FND (N) = (3 * COS(SQR(N)) / (2 * SQR(N))) + .35 _ IF F * (-4.285 * (-SQR(x0) * SIN(SQR(x)) - COS(SQR(x))) / (2 * x * SQR(x))) < then print “не сходится”:end GOSUB 3 END '=========Метод половинного деления======== 1 x = (a + b) / 2: T = T + 1 F3 = FNZ(x) IF ABS(F3) < E THEN 5 IF F1 * F3 < 0 THEN b = x ELSE a = x IF ABS(b - a) > E THEN 1 - 5 PRINT "X="; x, "T="; T RETURN '=========Метод итерации========== 2 x0 = a 12 X2 = FNF(x0): S = S + 1 IF ABS(X2 - x0) > E THEN x0 = X2: GOTO 12 PRINT "X="; X2, "S="; S RETURN '========Метод касательных======= 3 x0 = b 23 D = D + 1 F = FNZ(x0): F1 = FND(x0) X3 = x0 - F / F1 IF ABS(X3 - x0) < E THEN 100 IF ABS(F) > E THEN x0 = X3: GOTO 23 100 PRINT "X="; X3, "D="; D RETURN Ответ x= 2,29834 T=11 x=2,29566 S=2 x=2,29754 D=2 где T,S,D-число итерации для метода половинного деления, итерации, касательных соответственно. ----------------------- Конец Вывод x,F3 |b-a|>? a=x1 b=x1 нет да F1* F3<0 да да нет нет |F3| ? ? F3=f(x) X=(a+b)/2 Конец нет да F1*F2>0 F1=f(a); F2=f(b) Ввод а,b,? Начало Уточнить a,b [pic] Конец Вывод x1 да нет |x1|-|x0|>? x1=?(x0) Ввод x0,? Начало x0=x1 [pic] [pic] нет да |f(x)|>? x0=x1 Конец Вывод x1 да нет |x1-x0|<? x1=x0-F/F1 Ввод x0,? Начало [pic] нет да Метод половинного деления Конец F1 *F2>0 F1 , F2 Ввод а,b,? КОНЕЦ Процедура метода касательных нет да да Fx*Fx``<0 Ввод х0 Процедура метода итерации нет FI1(x0)?1 ?(x0)=FI, FI1=?`(x0) F=f(x0), F1=f`(x0), F2=f``(x0) ВВОД x0 ,? Уточнить a,b Метод не сходится НАЧАЛО |
РЕКЛАМА
|
|||||||||||||||||
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА | ||
© 2010 |