80 likes | 315 Views
Приближенное решение уравнений. Найти корень уравнения x 3 – cosx = 0 приближенными методами (графическим и численным методом деления числового отрезка аргумента пополам). Графический метод.
E N D
Приближенное решение уравнений Найти корень уравнения x3 – cosx = 0приближенными методами (графическим и численным методом деления числового отрезка аргумента пополам)
Графический метод • Построение графиков функций может использоваться для грубо приближенного решения уравнений. Для уравнений вида f(x) = 0, где f(x) - некоторая непрерывная функция, корень (или корни) этого уравнения являются точкой (или точками) пересечения графика функции с осью х.
Графический метод • График функции пересекает ось X один раз и, следовательно, уравнение имеет один корень. По графику грубо приближенно можно определить, что x 0,8.
Численный метод половинного деления • Для решения уравнений с заданной точностью применим численный метод решения уравнений путем последовательных приближений методом половинного деления: • Пусть область определения на отрезке [a;b]. f(a)и f(b) имеют разные знаки. Делим отрезок пополамc=(b-a)/2, находим f(c), продолжаем работать с той половинкой, на которой функция меняет знак. Точность вычислений Е.
Численный метод половинного деления • Из графика функции видно, что корень находится на отрезке [0;1]. Вводим значения концов числового отрезка, а также точность вычислений (E=0,0001). • Вычислить корень уравнения методом половинного деления (до тех пор, пока выполняется условие (b-a)/2>E)
Задание: • Найти корни уравнения x3 = sin(x)
Поиск корня уравнения делением отрезка пополам var a, b, x1, x2, x3, y1, y2, y3, x0: real; flag: boolean;function f (x: real): real; {функция, чей корень мы ищем} begin f:=x*x-2; end;begin readln (a, b); {границы отрезка, на котором мы ищем корень} if a>b then begin x1:=b; x2:=a; end else begin x1:=a; x2:=b; end;
Поиск корня уравнения делением отрезка пополам flag:=true; while flag do {пока корень не найден} begin x3:=(x2+x1)/2; {делим отрезок пополам} y3:=f(x3); y1:=f(x1); y2:=f(x2); if y1*y3<0 {если на границах отрезка значения функции имеют разный знак} then x2:=x3 {то выбираем этот отрезок} else x1:=x3; if abs(x1-x2)<1e-6 {точность нахождения корня с точностью до 6 знаков после запятой} then begin x0:=x1; flag:=false; end; end; writeln (x0:8:6);end.