Реферат: Комбинированый метод для вычисления корня уравнения - Refy.ru - Сайт рефератов, докладов, сочинений, дипломных и курсовых работ

Комбинированый метод для вычисления корня уравнения

Рефераты по коммуникации и связи » Комбинированый метод для вычисления корня уравнения

2.1Цель работы:

Изучить комбинированный метод для вычисления действительного корня уравнения, уметь использовать данный метод для решения уравнений с использованием ЭВМ.


2.2 Расчётные формулы


Расчётная формула вычисления -го приближения по методу касательных:

.

Расчётная формула вычисления -го приближения по методу хорд:

.

Начальное приближение для метода касательных выбирают в соответствии с условием:

, если ,

или , если .

Начальное приближение для метода хорд тогда принимается , или соответственно.

Процесс вычисления корня останавливается, когда выполняется условие:

,

где – заданная точность.

За приближенное значение корня уравнения принимается:

.

2.3 Подготовительная работа


Вычислить корень уравнения с точность комбинированным методом.

Графически отделим корни. Для этого данное уравнение запишем в виде . Строим графики функций и (рис. 2.1).

Рисунок 2.1


Точный корень уравнения , отрезок [0;1] – интервал изоляции корня.

Проверяем условия, гарантирующие единственность корня на [0;1] и сходимость метода:


непрерывна на [0;1] и не меняет знак:.

непрерывна на [0;1] и не меняет знак:.


За начальное приближение для метода касательных берём , для метода хорд .

Процесс вычисления корня:


.

Условие не выполняется, процесс вычисления корня продолжается до достижения заданной точности .

Требуемая точность вычисления результата была достигнута за 2 итерации. Результат 0,607199.

2.4 Текст программной реализации


#include <iostream>

#include <math.h>

using namespace std;

double f(double x)

{

return 3*x-cos(x)-1;

}

double fw(double x)

{

return 3+sin(x);

}

void main()

{

double xk, xh, tochnost, otvet;

cout<<"Vvedite nachalnoe priblizhenie po metodu kasatelnih xk=";

cin>>xk;

cout<<"nVvedite nachalnoe priblizhenie po metodu hord xh=";

cin>>xh;

cout<<"nX-hordttX-kasatelnihtTochnostn-----------------------------------";

int n;

for(n=0; n<20; n++)

{

xh -= f(xh)*(xk-xh)/(f(xk)-f(xh));

xk -= f(xk)/fw(xk);

tochnost=fabs(xh-xk);

cout<<'n'<<xh<<'t'<<xk<<'t'<<tochnost;

if(tochnost<0.001) break;

};

n++;

otvet=(xh+xk)/2;

cout<<"nnKolichestvo iteraciy="<<n;

cout<<'n'<<'n'<<"Koren uravneniya="<<otvet;

cin>>xk;

}