![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Решение нелинейных уравнений методом деления отрезка пополам
Постановка задачи:
Необходимо решить уравнение f(x)=0 с заданной точностью, если на отрезке
Уравнение называется нелинейным, потому что оно может содержать тригонометрические, логарифмические, показательные функции, и потому что x могут входить в степень выше первой.
Разделим отрезок [a; b] пополам, найдя его середину (
II этапа решения данной задачи:
I этап: отделение корней
Получение отрезка [a; b], содержащего единственное решение.
II этап: численные методы (метод деления отрезка пополам)
Алгоритм решения:
1) Ввод a, b, Eps
2) Цикл iter do 2.1. Получение середины отрезка iter++ 2.2. если b=c иначе a=c while (|f(c)|< Eps или |b-a|< Eps)
3) Вывод решения – с
4) Проверка (подставляем в функцию с, f(c) должно получиться ≈ 0)
Исходные данные: График функции:
По графику видно, что отрезок [a; b] – это [0, 1], т. к. на этом отрезке у графика разные знаки на концах.
Текст программы:
#include< conio.h> #include< iostream.h> #include< math.h> long double f(long double x) { if (x==0) x=0.000001; return (2*log(x)-x/2+1); } void main() { clrscr(); long double a, b, Eps, c=0; int iter=0; cout< < " Vvedite a, b, Eps "; cin> > a> > b> > Eps; do { c=(a+b)/2; if (f(a)*f(c)< 0) b=c; else a=c; iter++; } while(fabs(f(c))> Eps); cout< < " \nOtvet: " < < c< < " \n\nIteraziy: " < < iter< < " \n\nProverka: " < < f(c); Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение getch(); }
Скриншот результата программы (при Eps=0, 01 7 итераций):
Результаты работы программы (проверка говорит о том, что решение правильное – f(c) ≈ 0):
с (
Скриншот результата программы (при Eps=0, 0000001 22 итерации):
Результаты работы программы (проверка говорит о том, что решение правильное – f(c) ≈ 0):
с (
|