Автор: Пользователь скрыл имя, 08 Мая 2011 в 13:18, лабораторная работа
Изучить комбинированный метод для вычисления действительного корня уравнения, уметь использовать данный метод для решения уравнений с использованием ЭВМ.
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-
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-
cout<<'\n'<<xh<<'\
if(tochnost<0.001) break;
};
n++;
otvet=(xh+xk)/2;
cout<<"\n\nKolichestvo iteraciy="<<n;
cout<<'\n'<<'\n'<<"Koren uravneniya="<<otvet;
cin>>xk;
}
Информация о работе Комбинированый метод для вычисления корня уравнения