Реферат: Комбинированый метод для вычисления корня уравнения
Название: Комбинированый метод для вычисления корня уравнения Раздел: Рефераты по коммуникации и связи Тип: реферат |
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-hord\t\tX-kasatelnih\tTochnost\n-----------------------------------"; 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<<"\n\nKolichestvo iteraciy="<<n; cout<<'\n'<<'\n'<<"Koren uravneniya="<<otvet; cin>>xk; } |