Решение уравнений методом половинного деления в excel. Решение уравнений средствами Excel. Методические указания к лабораторным работам по дисциплине "Математика и информатика". Решение нелинейного уравнения
Вопрос: Нахождение корней уравнения методом деления отрезка пополам
Добрый день,что не так с 3-ьим корнем,никак не хочет выводится.Сверху - 3 корня через подбор параметра.Снизу - методом половинного деления. Округление 0,001 Уравнение x^3-2*x^2-x+2 Кто-нибудь может подправить или дать полезный совет,что не так?
Ответ: furymaxim , скобки пропустили
Вопрос: Дешифрование методом Плэйфера в MS Excel
Пожалуйста Подскажите как сделать дешифратор в EXCEL с помощью формул. Или скажите с помощью какой формулы можно с генерировать алфавит
Ответ: В ячейку А1
Code | ||
|
И протянуть вниз
Вопрос: Тормозит файл-таблица Excel
Доброго времени суток, уважаемые коллеги!
Очень нужна ваша помощь, уже перепробовал все найденные и известные мне методы по уменьшению объема файла. Вроде бы все лишнее там вычистил.
Не смотря на это при работе с таблицей идут тормоза и подвисает, причем они переменны но стабильны (то тормозит, то не тормозит).
мне кажется, что возможно это из-за выпадающего списка с фотографиями, заметил что по мере увеличения выпадающих списков с фотками - увеличиваются и тормоза. Но странно, таблицы все маленькие, галлерея с фотками тоже не большая.
Ответ:
Проблему решил! Просто установив excel 2016 для Mac - вообще никаких тормозов, пока все работает отлично, но не уверен что дальше не столкнусь с этим опять!
Тем не менее, проблема актуальна, т.к. решение не через установку другой версии excel, возможно, кому-то еще пригодится
p.s. предыдущая версия excel была 2011 для Mac
Вопрос: Office 2007 как установить excel 2010
всем привет.
может название темы не совсем точно передает суть(((, но....
у меня win xp sp3 office 2007 Года и excel 2007года.
в excel то ли 2010 то ли 2013 есть функция диаграмм в виде карт стран или континентов powerview или как там точно. там еще карты бин используются.
есть ли какие надстройки для excel2007 чтобы такие диаграммы можно было. если нет, то в каком excel есть эта функция и есть ли возможность установить 2 excel на 1 комп. к примеру 2007 и 2010 на win xp sp3 если функция диаграмм с картами стран есть в 2010????
спасибо.
Ответ: так а в 2010 excel это есть?? и если есть то как установить excel 2010 не удаляя мой офис 2007???
Добавлено через 3 часа 10 минут
ща смотрел похожие темы. нашел про libreoffice. программа такая как офис только бесплатная. мб у кого-нибудь есть карта Республики Беларусь для это программ????. там расширение geoOOo.
Вопрос: Получение выборки из Excel
Мне требуется на основе данных из Excel файла создать презентацию в PowerPoint.
Ни с тем, ни с другим раньше не работал. Поэтому проверьте алгоритм (наброски):
Получаю с помощью запросов необходимые выборки,
Связываю результаты выборок с шаблоном (пока не читал, как программно создаётся презентация)
Создаю, собственно, презентацию.
И всё это прописываю в макросе.
1. Последовательность правильная?
2. Как мне работать с данными полученными с помощью запросов? Записать их временно; результат каждого запроса на отдельном листе, а после создания файла-презентации закрыть БЕЗ ИЗМЕНЕНИЙ файл Excel? Или как-то по другому?
3. Как правильно написать подобный запрос?
Мой набросок не работает:
Запись результатов запроса из первого листа на второй.
4. Как этот запрос запустить
Код Visual Basic | ||
|
Что-то типа этого?
Добавлено через 2 часа 42 минуты
Или такое возможно только через временную БД Access?
Ответ: В смысле сюда? На форум? - Пожалуйста... Дело то не в данных, а в запросах (способах обработки). В Access я это делаю, в Excel - не могу. Например подсчитать продажи для 3-х производителей с самыми большими продажами (ТОП 3), а остальных - суммировать. Я так понимаю - это не автоматизировать... Руками - Да, можно сделать.
Вопрос: Как добавить имена вложений Outlook в Excel с последующим сохранением их в указанной папке
Добрый день всем гуру Excel-я.
Благодаря этому форуму мне получилось наладить документооборот в Excel (точнее регистрацию входящих-исходящих писем) в более-менее автоматизированном виде.
В приложенном файле следующие основные макросы:
1. "Первое_MailSave" - прописывает письма из папки входящие Outlook
2. "Второе_в_шаблон" - выдает входящий номер и выводит данные в определенный шаблон (одобренный руководством в плане удобочитаемости)
3. "Завершение_Печать" - сохраняет лист шаблона в формате pdf в папке с входящим номером и пускает на печать.
Т.е. счастье есть, теперь полная обработка 10 писем занимает 3-4 минуты, а не 30-40.
Проблема с обработкой вложений:
1. Как не в ручную прописывать кол-во вложений
в письме, а автоматом с выводом в ячейку E4 листа "data" количества + 1 (само письмо)
2. Как в листе "Шаблон" в В5 перечислить все вложения по именам
3. Что добавить в макрос "Завершение_Печать", чтобы вложения сохранялись
в новосозданную папку с самим письмом.
Все данные из письма забираются, а вот с вложением так и не придумал как(см.код)
Код Visual Basic | ||
|
Поиски в интернете все ссылаются на макросы для outlook, но регистрация и создание необходимых директорий у меня происходит в excel, соответственно все переменные в нем же.
С одной стороны, у меня три разных вопроса, но, мне кажется, что оптимальнее будет реализовать все три вопроса в одном макросе.
С уважением, Лев
Ответ:
В итоге получился полный и автоматизированный документооборот.
Для переноса писем с вложениями в excel и соотв. папки
Код Visual Basic | ||
|
Ответ: Строго в модуль книги ThisWorkbook(ЭтаКнига) личной книги макросов Personal.xls(xlsb)
Visual Basic | ||
|
Большинство алгоритмов нахождения корней уравнения позволяют найти, как правило, лишь один корень на заданном промежутке. К наиболее известным методам относятся методы:
- Метод простых итераций
- Метод Ньютона
- Модифицированный метод Ньютона
- Метод Рыбакова
- Метод дихотомии
- Метод каскадного приближения
- Метод хорд
- Комбинированный метод секущих-хорд
- Метод Эйткина – Стеффенсона
- Метод обратной квадратичной интерполяции – экстраполяции и др.
Количество методов нахождения корней велико, как и различных алгоритмов сортировок.
Мной рассмотрен метод дихотомии, взятый из файла MM6.PDF. Посмотрите код примера. Он составлен с применением старого, но излюбленного ранее оператора Go TO. С точки зрения структурного программирования использование такого оператора недопустимо, но зато эффективно. В литературе к данной заметке приложено несколько ссылок на найденные мной специально материалы, в том числе на справочник алгоритмов Дьяконова. Когда то, он был настольным у меня. Старые версии Бейсик кишат операторами типа Go TO. В старых версиях Бейсика используется и оператор присваивания LET.
Версий Бейсика существует множество. Мне когда-то пришлось часто переводить программы с одной версии на другую. А впервые с одной из версий Бейсика я познакомился в году 1980 в институте геофизики, куда мы ездили навещать с другом его брата. Он занимался методом магнитного ядерного резонанса. Все расчеты по обработке результатов опытов производились с применением мини ЭВМ иностранного производства и на языке Бейсик. Затем этот язык появился на довольно мощной по тому времени «Искра-226», ну и на знаменитой БК-10, используемой с середины 80-х в классах в школах. В 1983-1984 годах в Харькове я увидел первую PC. У ней было лишь 2 гибких дисковода на 2 разных типа дискет и объем памяти порядка 560 Мб, а основным языком программирования был Форт. Это язык стеков, который успешно применялся в управлении радиотелескопами. На этом языке просто реализовывалась графика.
Все основные алгоритмы сортировок и вычислительных методов были реализованы в большинстве случаев ещё для языков АЛГОЛ и ФОРТРАН в середине 50-х годов.
Теперь о примере. Там приведены решения 2-х разных уравнений. Первое уравнение X*X-5*SIN(X). Очевидно что синус меняется от -1 до +1. Следовательно 5*синус меняется от -5 до +5. Квадрат Х растет намного быстрее. Следовательно, можно предположить, что корни будут при значениях Х около в диапазоне вблизи 0 или 2. Лучше построить сначала график, чтобы проанализировать диапазон, в котором находятся корни. На графике видно, что корней должно быть 2. В примере мы нашли лишь один из корней, потому что задали один из интервалов.
Во втором уравнении X*X*X-X+1 мы видим кубическую параболу с корнем вблизи -1.
Свои уравнения Вы можете заменять в макросе. Можно ли составить программы без операторов GOTO? – Конечно, можно.
аПусть корень уравнения (1) отделен на отрезке . Требуется найти значение корня с точностью ε .
"Процедура уточнения положения корня заключается в построении последовательности вложенных друг в друга отрезков, каждый из которых содержит корень уравнения. Для этого находится середина текущего интервала неопределенности (6) :
В в качестве следующего интервала неопределенности из двух возможных выбирается тот, на концах которых функция F(x)=0 имеет разные знаки"[8 ]. "Точность будет достигнута, если:
Корень уравнения вычисляется по формуле x=(a n +b n)/2 (7) "[1 ].
Пусть дана задача следующего характера: Уточнить корни уравнения cos(2x)+x-5=0 методом половинного деления с точностью до 0,00001, используя:
1. Mathcad ;
Для того чтобы уточнить корни уравнения cos(2x)+x-5=0 методом половинного деления, используя Excel, необходимо выполнить следующие действия:
1. Заполнить ячейки A1:H1 последовательно следующим образом: a, b, c=(a+b)/2, f(a), f(b), f(c), |b-a|<=2*e, e.
2. Ввести в ячейку A2 число 5, в ячейку B2 - число 6.
3. В ячейку B2 ввести формулу: =(A2+B2)/2.
4. В ячейку D2 ввести формулу: =cos(2*A2)+A2-5, скопировать эту формулу в ячейки E2:F2.
5. Ввести в ячейку G2 формулу: =ЕСЛИ(ABS(B2-A2)<=2*$H$2;C2;"-").
6. Ввести в ячейку H2 число 0,00001.
7. В ячейку A3 ввести формулу: =ЕСЛИ(D2*F2<0;A2;C2).
8. В ячейку B3 ввести формулу: =ЕСЛИ(D2*F2<0;C2;B2).
9. Диапазон ячеек C2:G2 скопировать в диапазон ячеек C3:G3.
10. Выделить диапазон ячеек A3:G3 и с помощью маркера заполнения заполнить все нижестоящие ячейки до получения результата в одной из ячеек столбца G (это ячейки A3:G53).
В итоге получаем следующее:
Ответ: Корень уравнения cos(2x)+x-5=0 равен 5,32977.
- Метод хорд
Берілген әдісті шешу үшін y=F(x) функциясын құру керек
" Для реализации данного метода, нужно построить исходную функциюy=F(x) и найти значения функции на концах отрезка F(a) и F(b) . Затем провести хорду М 1 M 2 c концами в точкахМ 1 (a, F(a)) и M 2 (b, F(b)). Абсцисса точки пересечения хорды М 1 M 2 с осью OX это и есть приближенный кореньx 1 . Далее найти точкуM 3 (X 1 ,F(x 1)) , построить следующую хорду и найти второй приближенный корень x 2 . И так далее. В зависимости от поведения функции возможны два случая :
Для первого случая (Рис. 1) справедлива следующая формула (8) :
и справедливо неравенство: F(a)*F""(a)>0, где x 0 =b.
Для второго случая (Рис. 2) справедлива следующая формула (9) :
и справедливо неравенство: F(b)*F""(b)>0 , где x 0 =a .
Условия сходимости метода секущих аналогичны условиям сходимости метода Ньютона, т. е."[1 ]
Пусть дана задача: Уточнить корни уравнения cos(2x)+x-5=0 методом хорд с точностью до 0,00001, используя:
1. Mathcad ;
Для того чтобы уточнить корни уравнения cos(2x)+x-5=0 методом хорд, используя Excel, необходимо выполнить следующие действия:
1. Выбрать одну из двух предложенных формул для решения задачи, для этого:
o Найти производную первого порядка от функции f(x)=cos(2x)+x-5. Она будет выглядеть следующим образом: f1(x)=-2sin(2x)+1.
o Найти производную второго порядка от функции f(x)=cos(2x)+x-5. Она будет выглядеть следующим образом: f2(x)=-4cos(2x).
o Заполнить ячейки следующим образом:
В ячейку A1 ввести a.
В ячейку A2 ввести цифру 5.
В ячейку B1 ввести b.
В ячейку B2 ввести цифру 6.
В ячейку C1 ввести f(x)=cos(2x)+x-5.
В ячейку C2 ввести формулу =COS(2*A2)+A2-5.
В ячейку D1 ввести f1(x)=-2sin(2x)+1.
В ячейку E1 ввести f2(x)=-4cos(2x).
В ячейку E2 ввести формулу =-4*COS(2*A2).
В ячейку F1 ввести Выбор формулы.
В ячейку F2 ввести формулу =ЕСЛИ(C2*E2>0;"Воспользоваться формулой 8";"Воспользоваться формулой 9").
В ячейку G1 ввести e.
В ячейку G2 ввести цифру 0,00001.
o В итоге получается следующее:
2. Исходя из того, что выбрана формула 9, в Excel необходимо выполнить следующие действия:
o В ячейку A4 ввести xn.
o В ячейку B4 ввести f(xn).
o В ячейку C4 ввести b-xn.
o В ячейку D4 ввести f(xn)*(b-xn).
o В ячейку E4 ввести f(b).
o В ячейку F4 ввести f(b)-f(xn).
o В ячейку G4 ввести xn-f(xn)*(b-xn)/f(b)-f(xn).
o В ячейку H4 ввести |f(xn)|<=e.
o В ячейку A5 ввести цифру 5.
o В ячейку B5 ввести формулу =COS(2*A5)+A5-5.
o В ячейку C5 ввести формулу =$B$2-A5.
o В ячейку D5 ввести формулу =B5*C5.
o В ячейку E5 ввести формулу =COS(2*$B$2)+$B$2-5.
o В ячейку F5 ввести формулу =$E$5-B5.
o В ячейку G5 ввести формулу =A5-(B5*C5/F5).
o В ячейку H5 ввести формулу =ЕСЛИ(ABS(B5)<=$G$2;A5;"-").
o В ячейку A6 ввести формулу =G5.
o Выделить диапазон ячеек B5:D5 и скопировать его методом протягивания в диапазон ячеек B6:D6.
o Выделить диапазон ячеек F5:H5 и скопировать его методом протягивания в диапазон ячеек F6:H6.
o Выделить диапазон ячеек A6:H6 и скопировать его методом протягивания в диапазон ячеек ниже до получения результата в одной из ячеек столбца H (A6:H9).
В итоге получаем следующее:
Ответ: Корень уравнения cos(2x)+x-5=0 равен 5,32976.
Методы уточнения корней
После того как найден интервал, содержащий корень, применяют итерационные методы уточнения корня с заданной точностью.
Метод половинного деления
(другие названия: метод бисекций
, метод дихотомии
) для решения уравнения f
(x
) = 0 заключается в следующем . Пусть известно, что функция непрерывна и принимает на концах отрезка
[a
, b
] значения разных знаков, тогда корень содержится в интервале (a
, b
). Разделим интервал на две половины и дальше будем рассматривать ту половину, на концах которой функция принимает значения разных знаков. Этот новый отрезок снова делим на две равные части и выбираем из них ту, которая содержит корень. Этот процесс продолжается до тех пор, пока длина очередного отрезка не станет меньше требуемой величины погрешности. Более строгое изложение алгоритма метода половинного деления:
1) Вычислим x = (a + b )/2; вычислим f (x );
2) Если f (x ) = 0, то переходим к пункту 5;
3) Если f (x )∙ f (a ) < 0, то b = x , иначе a = x ;
4) Если |b – a | > ε, переходим к пункту 1;
5) Выводим значение x ;
Пример 2.4. Уточнить методом бисекций с точностью до 0,01 корень уравнения (x – 1) 3 = 0, принадлежащий отрезку .
Решение в программе Excel :
1) В ячейках A 1:F 4 введем обозначения, начальные значения и формулы, как показано в таблице 2.3.
2) Каждую формулу скопируем в нижние ячейки маркером заполнения до десятой строки, т.е. B 4 - до B 10, C 4 - до C 10, D 3 - до D 10, E 4 - до E 10, F 3 - до F 10.
Таблица 2.3
A | B | C | D | E | F | |
f(a)= | =(1-B3)^3 | |||||
k | a | x | f(x) | b | b-a | |
0,95 | =(B3+E3)/2 | =(1-C3)^3 | 1,1 | =E3-B3 | ||
=ЕСЛИ(D3=0;C3; ЕСЛИ(C$1*D3<0;B3;C3)) | =ЕСЛИ(C$1*D3>0; E3;C3) |
Результаты расчетов приведены в табл. 2.4. В столбце F проверяем значения длины интервала b – a . Если значение меньше чем 0,01, то в данной строке найдено приближенное значение корня с заданной погрешностью. Потребовалось 5 итераций для достижения требуемой точности. Приближенное значение корня с точностью до 0,01 после округления до трех знаков равно 1,0015625 ≈ 1,00.
Таблица 2.4
A | B | C | D | E | F | |
f(a)= | 0,000125 | |||||
k | a | x | f(x) | b | b-a | |
0,95 | 1,025 | -2E-05 | 1,1 | 0,15 | ||
0,95 | 0,9875 | 2E-06 | 1,025 | 0,075 | ||
0,9875 | 1,00625 | -2E-07 | 1,025 | 0,0375 | ||
0,9875 | 0,996875 | 3,1E-08 | 1,00625 | 0,0187 | ||
0,996875 | 1,0015625 | -4E-09 | 1,00625 | 0,0094 | ||
0,996875 | 0,9992188 | 4,8E-10 | 1,0015625 | 0,0047 | ||
0,99921875 | 1,0003906 | -6E-11 | 1,0015625 | 0,0023 | ||
0,99921875 | 0,9998047 | 7,5E-12 | 1,000390625 | 0,0012 |
Приведенный алгоритм учитывает возможный случай «попадания в корень», т.е. равенство f (x ) нулю на очередном этапе. Если в примере 2.3 взять отрезок , то на первом же шаге попадаем в корень x = 1. Действительно, запишем в ячейке B 3 значение 0,9. Тогда таблица результатов примет вид 2.5 (приведены только 2 итерации).
Таблица 2.5
A | B | C | D | E | F | |
f(a)= | 0,001 | |||||
k | a | x | f(x) | b | b-a | |
0,9 | 1,1 | 0,2 | ||||
Создадим в программе Excel пользовательские функции f(x) и bisect(a, b, eps) для решения уравнения методом половинного деления, пользуясь встроенным языком Visual Basic . Их описания приведены ниже:
Function f(Byval x)
Function bisect(a, b, eps)
1 x = (a + b) / 2
If f(x) = 0 Then GoTo 5
If f(x) * f(a) < 0 Then
If Abs(a - b) > eps Then GoTo 1
Функция f(x) определяет левую часть уравнения, а функция
bisect(a, b, eps) вычисляет методом половинного деления корень уравнения f
(x
) = 0. Обратим внимание на то, что в функции bisect(a, b, eps) используется обращение к функции f(x). Приведем алгоритм создания пользователькой функции:
1) Выполним команду меню «Сервис - Макрос - Редактор Visual Basic ». Откроется окно «Microsoft Visual Basic ». Если в данном файле программы Excel ещё не были созданы макросы или пользовательские функции или процедуры, это окно будет иметь вид, изображенный на рис.2.4.
2) Выполним команду меню «Insert - Module» и вводим тексты программ-функции, как показано на рис 2.5.
Теперь в ячейках листа программы Excel можно в формулах использовать созданные функции. Например, введем в ячейку D 18 формулу
Bisect(0,95;1;0,00001),
то получим значение 0,999993896.
Чтобы решить другое уравнение (с другой левой частью) нужно перейти в окно редактора с помощью команды «Сервис - Макрос - Редактор Visual Basic » и просто переписать описание функции f(x). Например, найдем с точностью до 0,001 корень уравнения sin5x + x 2 – 1 = 0, принадлежащий интервалу (0,4; 0,5). Для этого изменим описание функции
на новое описание
f = Sin(5 * x) + x ^ 2 - 1
Тогда в ячейке D 18 получим значение 0,441009521 (сравните этот результат со значением корня из интервала (0,4; 0,5), найденным в примере 2.3!).
Для решения уравнения методом половинного деления в программе Mathcad создадим подпрограмму-функцию bisec (f , a , b , ε), где:
f - имя функции, соответствующее левой части уравнения f (x ) = 0;
a , b - левый и правый концы отрезка [a , b ];
ε - точность приближенного значения корня.
Решение примера в программе Mathcad :
1) Запускаем программу Mathcad. Введем определение функции bisec (f , a , b , ε). Для этого с помощью клавиатуры и панели инструментов «Греческие символы» набираем bisec (f , a , b , ε):=. После знака присваивания «:=» на панели инструментов «Программирование» указателем мыши щелкаем левой кнопкой «Add line». После знака присваивания появится вертикальная линия. Далее вводим текст программы, который приведен ниже, используя панель инструментов «Программирование» для ввода знака «←», оператора цикла while , оператора break и условного оператора if otherwise .
2) Введем определение функции f
(x
):=sin(5*x)+x^2–1, а затем вычислим значение корня с помощью функции bisec
при заданных значениях:
bisec
(f
, –0.8,–0.7,0.0001)=. После знака «=» автоматически появится вычисленное программой значение корня –0,7266601563. Аналогично вычислим остальные корни.
Ниже приведен лист Mathcad с определением функции bisec (f , a , b , ε) и расчетами:
Приведем программу на языке C ++ для решения уравнения f (x ) = 0 методом половинного деления:
#include
#include
double f(double x);
typedef double (*PF)(double);
double bisec(PF f,double a, double b,double eps);
double a, b, x, eps;PF pf;
cout << "\n a = "; cin >> a;
cout << "\n b = "; cin >> b;
cout << "\n eps = "; cin >> eps;
x = bisec(pf,a,b,eps); cout << "\n x = " << x;
cout << "\n Press any key & Enter "; cin >> a;
double f(double x){
r = sin(5*x)+x*x-1;
double bisec(PF f, double a, double b,double eps){
do{ x = (a + b)/2;
if (f(x) == 0) break;
if (f(x)*f(a)<0) b = x;
}while (fabs(b-a) > eps);
В программе функция f (x ) определена для решения уравнения
sin5x + x 2 – 1 = 0
из примера 2.3. Результат работы программы для определения корня из интервала (0,4; 0,5) с точностью 0,00001 представлен ниже (экран компьютера):
Press any key & Enter
Последняя строка нужна для организации паузы для просмотра результата.
Иванов Иван
При прохождении темы численные методы учащиеся уже умеют работать с электронными таблицами и составлять программы на языке паскаль. Работа комбинированного характера.Расчитана на 40 минут. Цель работы повторить и закрепить навыки паботы с программами EXCEL, ABCPascal. Материал содержит 2 файла. Один содержит теоретический материал, так как он и предлагается ученику. Во 2-м файле пример работы ученика Иванова Ивана.
Скачать:
Предварительный просмотр:
Решение уравнений
Аналитическое решение некоторых уравнений, содержащих, например тригонометрические функции может быть получено лишь для единичных частных случаев. Так, например, нет способа решить аналитически даже такое простое уравнение, как cos x=x
Численные методы позволяют найти приближенное значение корня с любой заданной точностью.
Приближённое нахождение обычно состоит из двух этапов:
1) отделение корней, т.е. установление возможно точных промежутков , в которых содержится только один корень уравнения;
2) уточнение приближённых корней, т.е. доведение их до заданной степени точности.
Мы будем рассматривать решения уравнений вида f(x)=0. Функция f(x) определена и непрерывна на отрезке [а.Ь]. Значение х 0 называется корнем уравнения если f(х 0 )=0
Для отделения корней будем исходить из следующих положений:
- Если f(a)* f(b] \a, b\ существует, по крайней мере, один корень
- Если функция y = f(x) непрерывна на отрезке , и f(a)*f(b) и f "(x) на интервале (a, b) сохраняет знак, то внутри отрезка [а, b] существует единственный корень уравнения
Приближённое отделение корней можно провести и графически. Для этого уравнение (1) заменяют равносильным ему уравнением р(х) = ф(х), где функции р(х) и ф(х] более простые, чем функция f(x). Тогда, построив графики функций у = р(х) и у = ф(х), искомые корни получим, как абсциссы точек пересечения этих графиков
Метод дихотомии
Для уточнения корня разделим отрезок [а, b] пополам и вычислим значение функции f(х) в точке x sr =(a+b)/2. Выбираем ту из половин или , на концах которых функция f(x) имеет противоположные знаки.. Продолжаем процесс деления отрезка пополам и проводим то же рассмотрение до тех пор, пока. длина станет меньше заданной точности . В последнем случае за приближённое значение корня можно принять любую точку отрезка (как правило, берут его середину). Алгоритм высокоэффективен, так как на каждом витке (итерации) интервал поиска сокращается вдвое; следовательно, 10 итераций сократят его в тысячу раз. Сложности могут возникнуть с отделением корня у сложных функций.
Для приближенного определения отрезка на котором находится корень можно воспользоваться табличным процессором, построив график функции
ПРИМЕР : Определим графически корень уравнения . Пусть f1(х) = х , a и построим графики этих функций. (График). Корень находится на интервале от 1 до 2. Здесь же уточним значение корня с точностью 0,001(на доске шапка таблицы)
Алгоритм для программной реализации
- а:=левая граница b:= правая граница
- m:= (a+b)/2 середина
- определяем f(a) и f(m)
- если f(a)*f(m)
- если (a-b)/2>e повторяем, начиная с пункта2
Метод хорд.
Точки графика функции на концах интервала соединяются хордой. Точка пересечения хорды и оси Ох (х*) и используется в качестве пробной. Далее рассуждаем так же, как и в предыдущем методе: если f(x a ) и f(х*) одного знака на интервале, нижняя граница переносится в точку х*; в противном случае – переносим верхнюю границу. Далее проводим новую хорду и т.д.
Осталось только уточнить, как найти х*. По сути, задача сводится к следующей: через 2 точки с неизвестными координатами (х 1 , у 1 ) и (х 2 , у 2 ) проведена прямая; найти точку пересечения этой прямой и оси Ох.
Запишем уравнение прямой по двум точках:
В точке пересечения этой прямой и оси Ох у=0, а х=х*, то есть
Откуда
процесс вычисления приближённых значений продолжается до тех пор, пока для двух последовательных приближений корня х„ и х п _1 не будет выполняться условие abs(xn-x n-1 ) е - заданная точность
Сходимость метода гораздо выше предыдущего
Алгоритм различается только в пункте вычисления серединной точки- пересечения хорды с осью абсцисс и условия останова (разность между двумя соседними точками пересечения)
Уравнения для самостоятельного решения: (отрезок в excel ищем самостоятельно)
- sin(x/2)+1=x^2 (х=1,26)
- x-cosx=0 (х=0,739)
- x^2+4sinx=0 (х=-1,933)
- x=(x+1) 3 (х=-2,325)