Задание: построить график заданной функции на заданном интервале.
И мне здесь стало интересно. Пусть в задании функции непрерывные на заданных интервалах, но!
Возможно есть какой-то метод обнаружения разрыва. Просто при проходе функции - при разрыве может возникнуть деление на ноль (1/х при x=0) или при захождении аргумента функции за рамки области определения функции (ln(x) при х<=0) и тп.
Из прочитанного я немного понял, что это можно сделать через отключение дирректив.
На местах разрыва в точках(если ветви устремляются в бесконечность) я бы построил вертикальные асимптоты.
Не могли бы вы внести ясность в данный вопрос.
19 апреля 2008 в 23:00
> отключение дирректив
что это? может быть вы назовете язык?
20 апреля 2008 в 10:02
В общем случае невозможно определить, стремится ли функция в данной точке в бесконечность.
Если функция задана выражением – то возможно и даже не очень трудно – с помощью стандартных методов высшей математики.
Для практических целей вполне достаточно смотреть, не происходит ли такого, что f(x) < -MAX_VALUE, а f(x+dx) > MAX_VALUE, где MAX_VALUE – какое-то здоровое число.
20 апреля 2008 в 12:01
2 Леонид maxleo Максимов
Делфи.
Можно к примеру (хотя это не проверенные сведения) отключить ошибку деление на ноль (т.е. чтоб программа не вылетала при делении на ноль) и самому её(ошибку) обработать.
2 Жека jkff Кирпичев
Да, это сработает, когда мы справа приближаемся к числу (например 0 если функция 1/х). Когда значение функцкиии становится меньше MIN_VALUE, потом округляем х+dx до ближайшего целого (ясно что это будет ноль) и добавляем к ниму dx, пока значение функции не станет меньше MAX_VALUE и дальше продолжаем строить график. Обошли разрыв.
В этот раз это сработает. Но вот что делать с логарифмом, когда у нас не просто точка разрыва. На полуинтервале от минус беск до 0 значение аргумента не допустимо.
20 апреля 2008 в 12:02
Или вот ещё пример.
f(x) = х*х/х
В точке ноль никакого стремления нет, но разрыв в нуле имеется.
20 апреля 2008 в 15:01
отключение ошибки деления на 0. модно звучит
теперь по теме:
если есть желание находить и отображать все особенности функции, то придется использовать анализ выражений, в которых функция задана.
20 апреля 2008 в 15:03
Может так?
try
___y := f(x);
except
___// значение функции в точке х не определено
end;
20 апреля 2008 в 16:02
Насчет логарифма – ну необязательно искать асимптоту по пересечению нуля через бесконечность, достаточно просто поискать стремление к бесконечности.
Ну а в общем случае – повторюсь и повторяю maxleo – только с помощью анализа самого выражения. Но и в этом случае можно только проверить, имеет ли функция разрыв в данной конкретной точке, но нельзя найти все разрывы.
20 апреля 2008 в 16:05
На первом курсе матанализа учат исследовать функции и определять разрывы, а также строить асимптоты. Почитай http://www.sseu.ru/edumat/v_mat/course1/razd3z1/par3...
20 апреля 2008 в 16:05
f(x) = х*х/х => f(x) = x. Нету тут разрыва.
20 апреля 2008 в 17:01
2 Углурк РАБОТАЮ! Савченко
здесь разрыв первого рода