Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Численное решение уравнений

Читайте также:
  1. Antrag auf Erteilung einer Aufenthaltserlaubnis - Анкета для лиц, желающих получить разрешение на пребывание (визу)
  2. I.5.4. Решение задачи линейного программирования.
  3. II.1.3. Решение транспортной задачи в QSB.
  4. А380: ОПТИМАЛЬНОЕ РЕШЕНИЕ ДЛЯ ОБСЛУЖИВАНИЯ МАРШРУТОВ С БОЛЬШИМИ ПАССАЖИРОПОТОКАМИ
  5. Было время принять решение,
  6. ВОСКРЕШЕНИЕ В ПАМЯТИ
  7. Всегда ли надстройка "Поиск решения" находит решение?

 

 

Решение уравнения F(x) = 0 заключается в определении значений переменной "x", при которых функция обращается в нуль, т. е. в нахождении корней уравнения. Методы решения уравнений в конечном, аналитическом виде называются прямыми. Например, для уравнения F(x) = a*X+b = 0; решение имеет вид X = -в/а. Аналитически можно определить корни алгебраических уравнений не выше четвертой степени, причем для показателя степени больше двух формулы получаются достаточно сложные. Для определения корней алгебраических и трансцендентных уравнений разработаны численные методы, основанные на уточнении значения корня в предположении, что на отрезке [A, B] функция Y=F(x) непрерывна и имеет только один корень. В этом случае значения функции на концах отрезка имеют разные знаки. Знак вещественного числа "Y" можно определить при помощи функции:

FUNCTION SGN(Y: real): integer;

Begin if Y < 0 then SGN:= -1 else SGN:= 1 End;

Значение переменной SGN= -1 если Y<0, SGN= 1 если Y>=0.

Рассмотрим некоторые численные методы нахождения корней уравнения.

 

Метод половинного деления (дихотомии) при нахождении корня уравнения F(x)=0 состоит в делении пополам отрезка [A, B], где находится корень. Затем анализируется изменение знака функции на половинах отрезка и одна из границ отрезка [A, B] переносится в его середину. Переносится та граница, со стороны которой функция на половине отрезка знака не меняет. Далее процесс повторяется. Итерации прекращаются при выполнении одного из условий: либо длина интервала [A, B] становится меньше заданной погрешности нахождения корня "Е", либо функция попадает в полосу шума (Е1) - значение функции сравнимо с погрешностью расчетов.

 

REPEAT { начало итерации }

x:= (A + B)/2; { x - середина отрезка [A, B] }

Y:= F(x); YA:= F(A); { значения функции в середине и на конце отрезка }

if SGN(Y)* SGN(YA) > 0 { если знаки функции в точках "A" и "x" совпадают }

then A:= x else B:= x { то, перенос границы "A", иначе - "В" }

UNTIL (ABS(B-A)< E) OR (ABS(F(x))< E1);

Метод дихотомии уменьшает интервал определения корня за 1 итерацию в 2 раза - за 20 итераций это составит 220.

 

Метод секущих (хорд) при нахождении корня уравнения Y = F(x)=0 состоит в определении точки пересечения секущей с осью "x". Секущей называется линия, соединяющая точки с координатами (A, F(A)) и (B, F(B)) на плоскости XoY. Приближенное значение корня определяется точкой пересечения с осью "X" секущей и находится по формуле:

x = (A*F(B) - B*F(A))/(F(B) - F(A));

 

При следующем приближении вычисляется Y = F(x), YA = F(A) и полагается A=X, если знак функции на половине отрезка [A, x] не меняется, иначе B=x. Далее корень ищется на том отрезке, где функция меняет знак. Процесс прекращается при достижении требуемой точности.

 

Если на исследуемом интервале [A1, B1] функция имеет несколько корней x1[1.. m], то для их нахождения можно разбить этот интервал на "N" малых интервалов и выбрать из них те, где функция меняет знак. Здесь полагается, что на каждом малом интервале функция имеет не более одного корня. Затем следует на каждом выбранном малом интервале применить метод дихотомии или секущих:

Y МЕТОД СЕКУЩИХ   F(B) Y(x)     0 A x B X   F(A)    

 

dx:= (b1-a1)/N; { длина отрезков }

m:= 0 { счетчик корней }

for k:= 1 to N do begin

a:= a1+(k-1)*dx; b:= a+dx;

if SGN(F(a))* SGN(F(b) <= 0

then begin m:= m+1;

REPEAT << метод дихотомии >>

UNTIL (ABS(b-a)< E) OR (ABS(F(x)) < E1);

x1[m]:= x; { корень номер m }

End

End;

 


Дата добавления: 2015-10-29; просмотров: 70 | Нарушение авторских прав


Читайте в этой же книге: Двумерные преобразования координат | Проецирование пространственного изображения тела на плоскость | Практическое задание N 2. 11 | Практическое задание N 2. 12 | Практическое задание N 2. 14 | Практическое задание N 2. 16 | Оптика и свет | Практическое задание N 2. 19 | Электростатика и электромагнетизм | Практическое задание N 2. 25 |
<== предыдущая страница | следующая страница ==>
Практическое задание N 2. 26| Численный расчет интегралов

mybiblioteka.su - 2015-2024 год. (0.008 сек.)