Главная Обратная связь Поможем написать вашу работу!

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Методические указания к выполнению задания 2. При решении любое нелинейное уравнение, например , предварительно приводится к виду , т



При решении любое нелинейное уравнение, например , предварительно приводится к виду , т. е. , при этом функции могут быть алгебраическими, у которых над аргументом х выполняются лишь арифметические операции, и трансцендентными, которые содержат, кроме того, показательные, логарифмические, тригонометрические функции аргумента х. Такие уравнения далеко не всегда можно решить точно, а для практических расчётов точное решение не всегда является обязательным.
Поэтому особое значение с развитием вычислительной техники приобрели способы приближённого вычисления корней и оценки их точности.

Данная процедура состоит из двух этапов: 1) отделение корней, т. е.. выделение таких отрезков [a, b], в каждом из которых находится только один корень уравнения или нахождение первоначальных приближений корней;
2) уточнение корней, т. е.. нахождение их на найденных отрезках с заданной степенью точности.

1. Простейшим способом отделения корней является графический. На графике функции определяются отрезки [a, b], в пределах которых лежат точки пересечения функции с осью 0х, являющимися приближенными значениями корней. Например, при решении уравнения сначала вычисляем значения функции , по заданным значениям аргумента х (таблица 6) и затем по полученным данным строим график (рисунок 12).

Таблица 6

Результаты табулирования функции

х –3 –2 –1
y –19 –3 –1 –3

 

У

 

 

 

 

 

-3 -2 -1 0 1 2 3 х

 

-1

 

-2

 

 

-3

 

Рисунок 12 График функции

 

Как видно из графика, уравнение имеет 3 корня на отрезках [–2, –1],

[–1,0] и [1,2].

Отделить корни можно также программным способом. Для составления алгоритма решения данной задачи рассмотрим поведение функции на интервале от хнач до хкон с шагом h (рисунок 13)

 

у

 

F

 

 

хнач С хкон

 
 




h A h В 0 х

D

у

 

у1

 

 

Рисунок 13 График функции при наличии корней

 

Как видно из рисунка, корни уравнения находятся в точках А, В и С, где . Данные точки можно обнаружить, рассчитывая значения функции от хнач до хкон с шагом h и наблюдая за изменением её знака. Так, в точке А значение функции изменяется с «-» на «+», а в точке В с «+» на «-» и т. д. Обнаружить изменение знака функции можно путём перемножения двух её значений, вычисленных от аргументов х, находящихся в соседних точках на расстоянии h одно от другого. Для точки А, например, это будут значения функции D и F.

Отделение корней по рассмотренному методу реализует алгоритм, представленный на рисунке 14.

 

1           4   11 нет
 
 
да


 

6 12

 

 
 
нет


13

 

8 да

 

 

9 14

 

 

 

Рисунок 14 Схема алгоритм отделения корней функции f(x) на отрезке [хнач, хкон].

 

В блоке 2 вводятся начальное значение аргумента функции хнач, конечное хкон и шаг его изменения h.

В блоке 3 принимается текущее значение х за хнач и количество корней

m = 0, а в блоке 4 вычисляется первоначальное значение функции у1 при х = хнач.

Блок 5 организует цикл по изменению х от х + h до хкон с шагом h. В блоке 6 вычисляется очередное значение функции в точке ( ). Затем в блоке 7 проверяется, не пересекла ли функция ось ОХ. В случае отсутствия пересечения полученное значение у в блоке 10 запоминается как у1, а в блоке 5 значение х опять изменяется на величину шага h. Затем в блоке 6 снова вычисляется у и в блоке 7 проверяется функция на изменение знака. Так как в этом случае (точки D и F на рисунок 4), то в блоке 8 выводятся значения аргумента х - h и x, в пределах которых находится корень уравнения, а в блоке 9 фиксируется увеличение количества найденных корней на единицу. Циклический процесс повторяется до принятого конечного значения аргумента хкон. В результате будут найдены отрезки, на которых находятся корни нелинейного уравнения (около точек А, В, С на рисунок 13).



Программа на языке Basic, реализующая данный алгоритм для уравнения , будет следующей:

PRINT ²Введите Xнач, Xкон, H²

INPUT XN,XK, H

X = XN: M = 0

Y1 = X*X*X- 3*X - 1

FOR X = X + H TO XK STEP H

Y = X*X*X - 3*X - 1

IF Y*Y1 < 0 THEN GOTO 2 ELSE GOTO 5

2 PRINT “A=”; X - H; “B=”; X

M = M + 1

5 Y1= Y

NEXT X

IF M = 0 THEN PRINT “корней нет” ELSE PRINT “корней=”;M

END

 

Уточнение корня, найденного на отрезке [а, b], осуществляется одним из следующих методов: деления отрезка пополам, хорд (секущих), касательных (Ньютона), итераций. Рассмотрим некоторые из них, например, метод деления отрезка пополам (рисунок 15). Интервал [а, b] делится пополам и в найденной точке (с = (a + b) / 2) вычисляется значение функции y = f (с). Если êy ê£ е, где е – заданная точность, то C является корнем уравнения, т.к. при полученном C функция y = f (C) меньше точности е. В противном случае выбираем один из отрезков - или [а, (а + b) / 2] (рисунок 15 а), или [(а + b) / 2, b] (рисунок 15 б), на концах которого f (x) имеет противоположные знаки.
Выбранный интервал снова делим пополам (с = (a + b) / 2) и вычисляем значение функции y = f (с). Процесс повторяется до тех пор, пока не будет получено значение çy ê£ е.



у у = f(x)   у   0 а b х   у1 а)     у у = f(x)       a b х y у1 б)  
Рисунок 15 Уточнение корня методом деления отрезка пополам

 

Сказанное выше реализуется следующим алгоритмом (рисунок 16), где в блоке 2 вводятся полученные при отделении корней границы интервала [а, b] и точность вычисления корня е, а в блоке 3 вычисляется значения функции у1 при х = а. Затем в блоке 4 вычисляется середина интервала [а, b], а в блоке 5 – значение функции в середине данного интервала при
с = (a + b) /2. Если при проверке в блоке 6 оказывается çy ê£ е, то с – корень уравнения, который выводится в блоке 10. Если же условие çy ê£ е не выполняется, то в блоке 7 определяется: какую половину отрезка [а, b] оставить для дальнейшего нахождения корня. Если , то левую присвоением b = с (блок 9), а если же нет, то правую присвоением a = с (блок 8) и затем в блоке 4 опять определяется середина нового суженного интервала и процесс повторяется до тех пор, пока значение у станет меньше заданной точности е.

 

 

1   2                 6 да   нет нет 7 да 8 9     Рисунок 16 Схема алгоритма уточнения корня методом деления отрезка пополам

 

Программа на языке Basic, реализующая данный алгоритм для уравнения , будет следующей:

 

PRINT “Введите A, B, E “

INPUT A, B, E

Y1 = A*A*A - 3*A - 1

4 С = (A + B)/2

Y = С*С*С - 3*С - 1

IF ABS(Y) < E GOTO 10

IF Y*Y1< 0 THEN B = С ELSE A = С

GOTO 4

10 PRINT “корень=”; С

END

 

При уточнении корня методом итераций в уравнении неизвестное выражают через самого себя, т. е.. уравнение приводится к виду . Тогда рассмотренное выше уравнение преобразуем к виду .

Выберем произвольную точку х внутри отрезка [а, b], на котором находится корень уравнения, и подставим это значение в правую часть преобразованного уравнения, получив соответственно . Затем, приняв х равным полученному ( ), опять проведём вычисления нового xn.

Этот процесс последовательного вычисления значений по формуле будет продолжаться до тех пор, пока разность между вычисленным и предыдущим х по модулю не станет меньше заданной точность е ( ). Рассмотренное выше нахождение корня реализуется следующим алгоритмом (рисунок 17).

Метод итераций применим только в том случае, если вычислительный процесс сходится (т. е. от итерации к итерации абсолютная разность будет уменьшаться. Для этого необходимо провести преобразования исходного уравнения к виду так, чтобы выполнялось условие для любого значения х, принадлежащего отрезку [a, b].

Для предотвращения зацикливания в случае расходящегося процесса в схему алгоритма блоком 2 вводится параметр m, обеспечивающий ограничение на максимальное число итераций. Количество итераций подсчитывается в блоке 5 и при превышении заданного числа m блок 7 прерывает процесс поиска корня. Уточнение корней методом касательных подробно рассмотрено в [4].

 

1           4 8         6 нет 7   нет да 10 да         Рисунок 17 Схема алгоритма уточнения корня методом итераций  

Вопросы для самоконтроля

1Из каких этапов состоит процесс решения нелинейных уравнений?

2Чем характерна область, где находится корень уравнения?

3Как в алгоритме и программе определяется область нахождения корня?

4В чем сущность нахождения корня с необходимой точностью в заданной области?


Задание 3

Составить алгоритм и программу вычисления определенного интеграла согласно таблице 7. Номер варианта принять в соответствии с последней цифрой шифра зачетной книжки и первой буквой фамилии. Метод вычисления и количество частей N выбрать по своему усмотрению.

Таблица 7

Варианты интегралов к заданию 3

Последняя цифра шифра Первая буква фамилии
А, Г, Ж, В, К, Н, П, У, Ц, Ш, Ю, Б, Д, З, Л О, С, Ф, Ч, Н, Я, В, Е, И, Р, Т, Щ, Э, Х, М
Подынтегральная функция Пределы интегрирования Подынтегральная функция Пределы интегрирования
  а b   а     b  

 

 


Просмотров 318

Эта страница нарушает авторские права




allrefrs.ru - 2021 год. Все права принадлежат их авторам!