Функция касается оси абсцисс. Численным методом найти ноль функции.
Выбор региона:
-
Все регионы
-
Россия
- Москва
- Санкт-Петербург
- Адыгея
- Башкортостан
- Бурятия
- Алтай
- Дагестан
- Ингушетия
- Кабардино-Балкария
- Калмыкия
- Карачаево-Черкесия
- Карелия
- Коми
- Марий Эл
- Мордовия
- Саха (Якутия)
- Северная Осетия
- Татарстан
- Тыва (Тува)
- Удмуртская Республика
- Хакасия
- Чеченская Республика
- Чувашская Республика
- Алтайский край
- Краснодарский край
- Красноярский край
- Приморский край
- Ставропольский край
- Хабаровский край
- Амурская область
- Архангельская область
- Астраханская область
- Белгородская область
- Брянская область
- Владимирская область
- Волгоградская область
- Вологодская область
- Воронежская область
- Ивановская область
- Иркутская область
- Калининградская область
- Калужская область
- Кемеровская область
- Камчатская область
- Кировская область
- Костромская область
- Курганская область
- Курская область
- Ленинградская область
- Липецкая область
- Магаданская область
- Московская область
- Мурманская область
- Нижегородская область
- Новгородская область
- Новосибирская область
- Омская область
- Оренбургская область
- Орловская область
- Пензенская область
- Пермский край
- Псковская область
- Ростовская область
- Рязанская область
- Самарская область
- Саратовская область
- Сахалинская область
- Свердловская область
- Смоленская область
- Тамбовская область
- Тверская область
- Томская область
- Тульская область
- Тюменская область
- Ульяновская область
- Челябинская область
- Ярославская область
- Еврейская авт. область
- Ненецкий АО
- Ханты-Мансийский АО
- Чукотский АО
- Ямало-Ненецкий АО
- Забайкальский край
- Украина
- Белоруссия
- Грузия
- Туркмения
- Узбекистан
- Таджикистан
- Молдавия
- Киргизия
- Казахстан
- Армения
- Азербайджан
- США
- Израиль
- Чехия
- Германия
- Литва
- Эстония
- Латвия
- Другие регионы
- Без региона
-
Россия
Информатика и вычислительная техника / Программирование
4 октября 2016 в 22:57 | 4485 | Россия / Москва
4 октября 2016 в 22:57 | 4485 | Россия / Москва
Здравствуйте.
Просмотрел несколько методов для нахождения нуля функции. Каждый из них работает на отрезке, на котором функция меняет знак. Как только функция касается оси, но не пересекает ее, возникают проблемы. (банально, парабола, касающаяся вершиной оси).
Первое, с чем мне захотелось разобраться, это метод нахождения отрезка, на котором первая производная меняет знак и функция имеет ноль. Даже при крайне мелком шаге разбиения, производной, равной нулю, и значениях функции, близких к нулю, мы не можем быть уверены, что это "чистый" ноль.
Как решить подобную задачу?
- Учебное заведение: МТУ МИРЭА
|
Похожие материалы:
Рассмотрим, например, параболу f(x)=x^2+1, которая НЕ касается оси OX. На отрезке от -1 до 1 производная f'(x)=2x меняет знак. Вы имеете ввиду, нужно аналитически выяснить есть ли у функции ноль на этом отрезке?
Вычисляем значения функции на краях отрезка:
f(-1)=2, f(1)=2 - оба значения положительны, поэтому вопрос о нуле функции остаётся открытым.
В случае, если функция сначала возрастает, затем убывает (производная меняла знак с + на -) - можно сразу сказать, что нуля нет (т.к. f(-1)>0, f(1)>0). Но это не наш случай.
f(0)=1 - и поскольку это значение тоже >0, то нулей функции нет.
Если бы это значение равнялось нулю, то ноль был бы найден;
если бы оно было <0, то обнаружилось бы, что здесь два нуля (при условии непрерывности функции конечно).
Проведите аналогичное рассуждение для зеркального случая, когда на отрезке от a до b:
f(а)<0, f(b)<0
и производная тоже меняет знак на нём.
С формализацией алгоритма трудностей вроде как возникнуть не должно.
В данном случае речь идет о численном методе для языка C++. Возьмем параболу f(x)=x^2+1. Точка, в которой функция меняет знак f(0)=1. Возьмем окрестность точки [-r+0;0+r], пусть r=0.1. Разобьем окрестность на h шагов. Для каждого шага вычислим значение функции. Найдем минимальное. Скорее всего оно будет похоже на 1. 00986... ну что-то такое. Тут мы четко понимаем, что функция ось абсцисс не пересекает.
Возьмем параболу f(x)=x^2+10^(-10). Проводя аналогичные действия получим минимум порядка 10^(-10).
Согласитесь, что функцию я взял абсурдную. Аналитически мы сразу видим, что ось абсцисс не пересекается. Но компьютер выведет минимум похожий на 0.000000...
Ознакомился со статьей "Метод касательных". Грусть приходит, когда рассматриваем модуль отношения функции к производной. Частное перестанет сходиться к чему-либо похожему на приближение. Если вам интересно, то на dxdy задал этот вопрос (http://dxdy.ru/topic111955.html)
Реакция неоднозначная, как, собственно, и решение.
Казалось бы задача: найти ноль функции численным методом в точке касания. А такой трэш.
Пусть на отрезке от a до b дана непрерывная функция f(x) и ПРОИЗВОДНАЯ этой функции меняет знак в точке c (данного отрезка). Тогда:
1) Если f(a) > 0, f(b) > 0 и f(с) > 0, то нуля не существует .
2) Если f(a) < 0, f(b) < 0 и f(с) < 0, то нуля тоже не существует.
Во всех других случаях хотя бы один ноль есть (здесь я не буду детализировать алгоритм)
И эту проверку осуществить очень просто!
Итак: если нуля не существует, то программа сразу должна выдать этот ответ! В противном случае запускаются вычисления.
(https://drive.google.com/open?id=0B3m0DBSUuNpQSE83dU80VUVjTXc)
(https://drive.google.com/open?id=0B3m0DBSUuNpQOWVJRmNjVnljejQ)
К сожалению, прикрепить их здесь не могу. Спасибо.