Методы поиска корней уравнения
Нахождение двух наименьших положительных корней уравнения. Рассмотрение метода деления отрезка пополам. Описание программного алгоритма этого метода. Определение значения корней с необходимой точностью. Характеристика метода итераций, пример решения.
Рубрика | Математика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 24.11.2014 |
Размер файла | 144,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство общего и профессионального образования
Кафедра прикладной математики
Лабораторная работа № 1
Вариант 10
Тема: «Методы поиска корней уравнения»
Обнинск 2013.
Условия задачи:
Найти два наименьших положительных корня уравнения с точностью
2x sinx - cosx = 0
а) методом деления отрезка пополам
б) один из корней методом итераций.
Метод деления отрезка пополам.
1.Теоритическая часть.
а) Процедура отделения корней:
Отделение корней произведём графически. Для этого построим график функции y=2x sinx - cosx.
Анализируя полученное изображение графика, можно утверждать, что два наименьших положительных корня и , уравнения y=2x sinx - cosx , находятся в интервалах (0,5;1) и (3;3,5) соответственно.
б) Обоснование сходимости для уравнения y=2x sinx - cosx:
в) Итерационные формулы, использованные в методе:
г) Погрешность метода:
2. Результаты расчётов.
а) Программа расчётов (на языке C++):
Алгоритмы:
Для возрастающего участка функции:
Вводим =a, =b и . Точкой
[],[,]. Если f()<0, то выбираем [,] и положим и . Если f()>0, то выбираем [] и положим и . )/2 и снова получаем 2 отрезка. В итоге, получаем совокупность вложенных отрезков:
[], []… [], где n=1,2… - количество итераций.
=)/. Положить X = )/2.
Для убывающего участка функции:
Вводим =a, =b и . Точкой
[],[,]. Если f()>0, то выбираем [,] и положим и . Если f()<0, то выбираем [] и положим и . )/2 и снова получаем 2 отрезка. В итоге, получаем совокупность вложенных отрезков:
[], []… [], где n=1,2… - количество итераций.
=)/. Положить X = )/2.
Условия выхода:
| - |<=E
Программный алгоритм метода деления отрезка пополам:
Дан сегмент [A,B], содержащий корень уравнения f(x), и epsilon=. Найти X.
Вводим a=A и b=B. Если f(a)<f(b), то пока выполняется неравенство (b-a)>epsilon.
Повторять: c=(a+b)/2 и если f(c)=0, то X=f(c); иначе если f(c)<0, то a=c; иначе если f(c)>0, то b=c. Положить X=(a+b)/2.
Иначе если f(a)>f(b), то пока выполняется неравенство (b-a)>epsilon.
Повторять: c=(a+b)/2 и если f(c)=0, то X=f(c); иначе если f(c)<0, то b=c; иначе если f(c)>0, то a=c. Положить X=(a+b)/2.
Вывести на экран: Номер итерации и величину X.
Код программы:
#include <cmath>
#include <iostream>
#include <conio.h>
#include <locale.h>
#include <iomanip>
using namespace std;
double f(double x){return 2*x*sin(x)-cos(x);}
int main()
{
int N=0;
double a,a1,b,b1,c,X,epsilon=0.000000001;?
setlocale(LC_ALL,"Rus");
cout<<"Введите а"<<endl;
cin>>a;
cout<<endl<<"Введите b"<<endl;
cin>>b;
a1=a;b1=b;
if (f(a)<f(b))
while((b-a)>epsilon)
{
N++;
c=(a+b)/2;
if (f(c)==0) {X=f(c); exit;}
else {if(f(c)<0) a=c;
else if(f(c)>0) b=c;}
X=(a+b)/2;
cout<<endl<<"N="<<N<<endl;
cout<<endl<<"X="<<X<<setprecision(9)<<endl;
}
else
while((b-a)>epsilon)
{
N++;
c=(a+b)/2;
if (f(c)==0) {X=f(c); exit;}
else {if(f(c)<0) b=c;
else if(f(c)>0) a=c;}
X=(a+b)/2;
cout<<endl<<"N="<<N<<endl;
cout<<endl<<"X="<<X<<setprecision(9)<<endl;
}
cout<<endl<<"Корень уравнения на интервале ("<<a1<<";"<<b1<<"):"<<endl<<X;
_getch();
return 0;
}
б) Значения корней с необходимой точностью:
=0.65327118.
=3.29231002.
в)Количество итераций:
=30.
=29.
Метод итераций.
1.Теоритическая часть.
Преобразуем уравнение 2x sinx - cosx = 0 к виду x=g(x), допускающем применение метода итераций:
g(x)=x + б f(x) при б?0 равносильно исходному уравнению.
f'(x)>0 на [0,1]. Пусть M=f(x) и m=f(x)
Положим б= - , тогда g(x) = x - (2x sinx - cosx).
Найдём значение константы:
Для этого найдём производную f'(x) и f(x)
f'(x)= 3sinx + 2x cosx
f'(x)=0
3sinx + 2x cosx=0 <=> sinx = x cosx отсюда x=2,17462602. Из графика функции f(x)=2x sinx - cosx видно, что точка M=f(x) = 2,17462602, значит б= -0.45984918.
Тогда x=g(x) примет вид:
x =x-0.459849181(2x sinx - cosx).
а) Процедура отделения корней:
Отделение корней произведём графически. Для этого построим графики функций y(x)=x и g(x)= x-0.459849181(2x sinx - cosx).
корень уравнение отрезок итерация
Анализируя полученное изображение графика, можно утверждать, что точка пересечения функций y(x)=x и g(x)= x-0.459849181(2x sinx - cosx) находится в интервале [0,4;0,8].
б) Обоснование сходимости для уравнения:
в) Итерационные формулы, использованные в методе:
г) Погрешность метода:
2. Результаты расчётов.
а) Программа расчётов (на языке C++):
#include <cmath>
#include <iostream>
#include <conio.h>
#include <locale.h>
#include <iomanip>
using namespace std;
double g(double x){ return x-0.459849181*(2*x*sin(x)-cos(x));}
int main()
{
int N=0;
double x,a=0.8,b=0.4,eps=pow(10,-8);
double a1=b,b1=a;
setlocale(LC_ALL,"Rus");
//cout<<"Введите а"<<endl;
//cin>>a;
//cout<<endl<<"Введите b"<<endl;
//cin>>b;
do
{
N++;
a=b;
b=g(a);
cout<<endl<<"N="<<N<<endl;
cout<<endl<<"b="<<b<<setprecision(9)<<endl;
cout<<endl<<"b-a="<<b-a<<setprecision(9)<<endl;
}while(abs(b-a)>eps);
x=(a+b)/2;
cout<<endl<<setprecision(9)<<"Корень уравнения на интервале ("<<a1<<";"<<b1<<"):"<<endl<<x;
_getch();
return 0;
}
б) Значения корней с необходимой точностью:
x=0.65327118.
в)Количество итераций:
N=16.
Размещено на Allbest.ru
...Подобные документы
Приближенные значения корней. Метод дихотомии (или деление отрезка пополам), простой итерации и Ньютона. Метод деления отрезка пополам для решения уравнения. Исследование сходимости метода Ньютона. Построение нескольких последовательных приближений.
лабораторная работа [151,3 K], добавлен 15.07.2009Характеристика важнейших типов сходимости итерационных последовательностей. Специфические особенности применения метода Ньютона для определения кратных корней. Алгоритм нахождения корней трансцендентного уравнения с использованием метода секущих.
дипломная работа [964,9 K], добавлен 09.06.2019Изучение способов приближенного решения уравнений с помощью графического изображения функций. Исследование метода определения действительных корней квадратного уравнения с помощью циркуля и линейки для приведенных семи уравнений, построение их графиков.
творческая работа [12,5 M], добавлен 04.09.2010Понятие и структура, принципы и этапы решения линейных уравнений. Уточнение корней методами половинного деления, хорд и Нютона. Пакет MathCad, использование программных фрагментов. Описание документа MathCAD, его стриктура и основные принципы работы.
курсовая работа [223,1 K], добавлен 18.07.2014Нахождение корней уравнений (Equation Section 1) методом: Ньютона, Риддера, Брента, Лобачевского и Лагерра. Вычисление корней многочленов по схеме Горнера. Функции произвольного вида (при использовании пакета Mathcad). Нахождение корней полиномов.
контрольная работа [62,7 K], добавлен 14.08.2010Анализ особенностей разработки вычислительной программы. Общая характеристика метода простых итераций. Знакомство с основными способами решения нелинейного алгебраического уравнения. Рассмотрение этапов решения уравнения методом половинного деления.
лабораторная работа [463,7 K], добавлен 28.06.2013Поиск корней нелинейных САУ с помощью метода продолжения решения по параметру. Математическое описание метода. Программное обеспечение для построения графиков сходимости метода. Требования к программному обеспечению и описание логической структуры.
курсовая работа [365,5 K], добавлен 27.04.2011Система линейных алгебраических уравнений. Основные формулы Крамера. Точные, приближенные методы решения линейных систем. Алгоритм реализации метода квадратных корней на языке программирования в среде Matlab 6.5. Влияние мерности, обусловленности матрицы.
контрольная работа [76,6 K], добавлен 27.04.2011Приведение уравнений к специальному виду. Устойчивость относительно переменных с одним нулевым и парой чисто мнимых корней в частном случае. Критический случай двух нулевых корней, одного нулевого и пары чисто мнимых корней, двух пар чисто мнимых корней.
дипломная работа [2,5 M], добавлен 13.07.2015Вычисление корня функции нелинейного уравнения методом деления отрезка пополам. Способы ввода, вывода и организации данных. Модульная организация программы. Разработка блок-схемы алгоритма задачи. Порядок создания программы на алгоритмическом языке.
реферат [30,0 K], добавлен 28.10.2010Структура и принципы решения линейных уравнений. Метод Крамера и Гаусса, Ньютона, половинного деления, секущих. Отличительные особенности и условия применения графического метода. Содержание теоремы Штурма. Принципы и основные этапы поиска интервалов.
реферат [948,7 K], добавлен 30.03.2019Исследование сущности и сфер применения метода итераций. Нелинейные уравнения. Разработка вычислительный алгоритм метода итераций. Геометрический смысл. Составление программы решения систем нелинейных уравнений методом итераций в среде Turbo Pascal.
реферат [183,7 K], добавлен 11.04.2014Гиперкомплексные числа: общее понятие и основные свойства. Нахождение корней трансцендентного уравнения в комплексных числах на примере уравнения классической задачи теории флаттера в математическом виде. Программная реализация решения в среде Maple.
контрольная работа [1,2 M], добавлен 28.06.2013Нелинейные уравнения, определение корней. Первая теорема Бальцано-Коши. Метод бисекций (деления пополам) и его алгоритм. Использование линейной интерполяции граничных значений заданной функции в методе хорд. Тестовое уравнение, компьютерный эксперимент.
реферат [104,3 K], добавлен 10.09.2009Содержание текстов Единого государственного экзамена. Решение уравнений высших степеней. Разложение многочлена третьей степени на множители. Определение корней квадратного уравнения и рациональных корней многочлена. Старший коэффициент делимого.
реферат [42,1 K], добавлен 20.10.2013Решение нелинейных уравнений. Отделения корней уравнения графически. Метод хорд и Ньютона. Система линейных уравнений, прямые и итерационные методы решения. Нормы векторов и матриц. Метод простых итераций, его модификация. Понятие про критерий Сильвестра.
курсовая работа [911,6 K], добавлен 15.08.2012Исследование метода квадратных корней для симметричной матрицы как одного из методов решения систем линейных алгебраических уравнений. Анализ различных параметров матрицы и их влияния на точность решения: мерность, обусловленность и разряженность.
курсовая работа [59,8 K], добавлен 27.03.2011Трансцендентное уравнение: понятие и характеристика. Метод половинного деления (дихотомии), его сущность. Применение метода простой итерации для решения уравнения. Геометрический смысл метода Ньютона. Уравнение хорды и касательной, проходящей через точку.
курсовая работа [515,8 K], добавлен 28.06.2013Составление уравнения Эйлера, нахождение его общего решения. Нахождение с использованием уравнения Эйлера-Лагранжа оптимального управления, минимизирующего функционал для системы. Использование метода динамического программирования для решения уравнений.
контрольная работа [170,3 K], добавлен 01.04.2010Понятие уравнения, его корни. Решение уравнения, усвоение понятий равносильного и линейного уравнений, нахождение их корней при переносе слагаемых, при наличии скобок. Формирование вычислительных навыков учащихся, их памяти и мыслительных операций.
конспект урока [118,0 K], добавлен 14.05.2014