Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Математика _ странная функция

Автор: Reflex 12.12.2006 5:34

Препод задал вопрос, а существует ли функция, которая везде непрерывна и нигде не монотонна? помогите ответить

Автор: Айра 12.12.2006 17:26

Может это функция типа y=число. Например: y=1; y=4; y=-15. smile.gif

Автор: Michael_Rybak 12.12.2006 19:15

Наверное, имелась ввиду нестрогая монотонность.

Автор: Altair 12.12.2006 20:08

Цитата
Может это функция типа y=число

Согласен, либо горизонтальная прямая либо точка.

Автор: Lapp 12.12.2006 20:12

Конечно нестрогая. Такой функции не бывает. Увы.
smile.gif

Автор: Michael_Rybak 12.12.2006 21:08

А по-моему бывает... smile.gif Потом напишу, будем искать у меня ошибку

Автор: Lapp 12.12.2006 21:13

Цитата(Michael_Rybak @ 12.12.2006 18:08) *

Потом напишу, будем искать у меня ошибку

Ждем-с..
Впрочем, я тоже пока не доказал невозможности. Вот сейчас лягу и в процессе засыпания буду... буду.. бу... хррр...
smile.gif

Автор: Reflex 12.12.2006 21:25

О! а не поможите ли вы мне доказать что такой функции не бывает?

Автор: Altair 12.12.2006 21:33

Теорема Вейерштрасса.
Если функция f (x) непрерывна на отрезке [a; b], то она ограничена на этом отрезке и достигает своего наибольшего и наименьшего значения.

В условии тебе сказанно, что

Цитата
везде непрерывна

Значит на всей области определения найдется наибольшее и наименьшее значение.
Ну а раз есть наибольшее и наименьшее значение, значит она монотонна

-добавил позже-
http://209.85.135.104/search?q=cache:Y3HeIqsH4nkJ:olympiads.mccme.ru/lktg/2006/3/3-1ru.ps+%D0%BC%D0%BE%D0%BD%D0%BE%D1%82%D0%BE%D0%BD%D0%BD%D0%B0+%D0%BB%D0%B8+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F&hl=ru&gl=ru&ct=clnk&cd=4&client=firefox-a

по ссылке:
Цитата
© Если непрерывная функция взаимно однозначна, то она строго монотонна.
(Разумеется, верно и обратное.)



-добавил позже-
А вот теперь и я сомневаюсь.
А неоднозначная функция? Если подобрать неоднозначную функцию?


-добавил позже-
Стоп, что значит неоднозначная? Это уже не функция!
Функция - это тройка D,E,F, где D - область определения, E-область значения, а F- это правило соответствия, которое каждому элементу из E сопоставляет единственное значение из E!

Автор: Michael_Rybak 12.12.2006 22:00

"которое каждому элементу из E сопоставляет единственное значение из E!" - это значит, что функция однозначная, но необязательно взаимнооднозначная!

Парабола, к примеру, не взаимнооднозначна.

Автор: arhimag 12.12.2006 22:36

Может это что-то типа функции которая 0 во всех иррациональных и 1 в рациональных, только немного другая?

Автор: Michael_Rybak 12.12.2006 23:06

В общем, у меня пример такой. Функция на [0; 3] задается так: f(0) = 0, f(3) = 3, f(1) = 2, f(2) = 1, а для прямоугольников {(0,0) - (1,2)}, {(1, 1) - (2, 2)} и {(2, 1) - (3, 3)} выполняем ту же процедуру рекурсивно (сохраняя пропорции).


Автор: Lapp 13.12.2006 1:02

Цитата(Michael_Rybak @ 12.12.2006 20:06) *

В общем, у меня пример такой.

А в чем твои сомнения? Все чисто. Оба свойства легко доказываются.
Good job! smile.gif

Автор: arhimag 13.12.2006 1:29

Кхм... Я может чего-то не понимаю, но ведь автору на прямой нужно!
-later
А... все вопрос снимаю, просто можно повторить эти отрезки

Автор: Reflex 13.12.2006 1:56

я чесно говоря не совсем поняла :
1. как рекурсивно? можно еще несколько шагов
2. почему не монотонна
3. почему непрерывна

Автор: Michael_Rybak 13.12.2006 3:15

Цитата
1. как рекурсивно? можно еще несколько шагов

В начале есть отрезок, соединяющий точки (0, 0) и (3, 3). Потом мы этот отрезок "ломаем", т.е. превращаем в ломаную из трех звеньев. Потом мы каждое из этих трех звеньев опять "ломаем", получается 9 звеньев и т.д.

Цитата
2. почему не монотонна
3. почему непрерывна


А это уж ты сама smile.gif

Автор: Altair 13.12.2006 3:47

Цитата
В начале есть отрезок, соединяющий точки (0, 0) и (3, 3). Потом мы этот отрезок "ломаем", т.е. превращаем в ломаную из трех звеньев. Потом мы каждое из этих трех звеньев опять "ломаем", получается 9 звеньев и т.д.

Фрактал что ли?

Автор: Michael_Rybak 13.12.2006 9:07

Вроде фрактала smile.gif Только фигура не подобна сама себе, т.к. коеффициенты сжатия по X и по Y - разные, и меняются.

Автор: Lapp 14.12.2006 4:36

Цитата(Michael_Rybak @ 13.12.2006 6:07) *

Вроде фрактала smile.gif Только фигура не подобна сама себе, т.к. коеффициенты сжатия по X и по Y - разные, и меняются.

Действительно похоже на фрактал.. А слабо оценить ее длину? конечная она или нет? Моя гипотеза - конечная.

Я вспомнил (как всегда, поздно), что уже слышал про существование такой функции, но уточнить ее вид тогда как-то не удосужился, а потом и вовсе забыл. Так что сейчас стал доказывать противоположное sad.gif - чего, разумеется, сделать не смог (хотя был близок несколько раз, но всякий раз не хватало пустяка smile.gif)

Но задача явно красивая и заслуживает особого внимания. И я решил построить ее график.. Смотрите, что получилось:
Прикрепленное изображение
Красиво? smile.gif
Разумеется, я вывожу только точки - соединять их линиями для такой функции было бы в корне неверно. Поэтому она выглядит разрывной. Если увеличить количество точек, можно добиться сплошного вида на графике, но будет менее красиво (пробовал, могу положить сюда по запросу).
Если кто хочет поиграться сам, привожу паскалевскую функцию, которая вычисляет эту самую функцию. Кстати, я для себя называю ее Молнией. Не правда ли, похожа? smile.gif
function Lightning(x,s:real):real;
var
a,b,Fa,Fb,d,dF:real;

begin
a:=0;
b:=3;
Fa:=0;
Fb:=3;
repeat
d:=(b-a)/3;
dF:=(Fb-Fa)/3;
if x<a+d then begin
b:=a+d;
Fb:=Fa+dF*2
end
else if x<a+2*d then begin
b:=a+2*d;
a:=a+d;
Fb:=Fa+dF;
Fa:=Fa+2*dF;
end
else begin
a:=a+2*d;
Fa:=Fa+dF
end;
until Abs(dF)<s;
Lightning:=(Fa+Fb)/2
end;

Здесь х - параметр, а s - точность. Я брал точность 0.000001.
Так как насчет вычисления длины, а? smile.gif

Автор: Michael_Rybak 14.12.2006 6:53

Мда... с длиной это, конечно, интересно smile.gif

Ну, по крайней мере, можно посмотреть, что там с ломаными получается, предел какой-никакой записать. Или хоть вычислить первых 10 шагов, и посмотреть...

Еще у меня такой вопрос: можно ли говорить, что если график непрерывной функции f(x) на промежутке [0; 1] имеет длину t, то график функции g(x) = f(x / 10) на промежутке [0; 10] имеет длину 10t ? Глупость, а вдруг правильно? Если правильно, то сразу выходит, что длина не может быть конечной.

По-любому красивая молния smile.gif

Автор: Bokul 14.12.2006 7:00

Извиняюсь за оффтоп, я бы тоже по-участвовал, но знаний не хватает:

Цитата
Кстати, я для себя называю ее Молнией.

Скорее очертание горы напоминает. wink.gif

Автор: Lapp 14.12.2006 7:10

> Глупость, а вдруг правильно?
Нет, не правильно.
Рассмотри почти вертикальный график y=10x на [0,1] (его длина чуть больше 10, а потом растяни его на 10 и получишь длину 14.142
..
> Если правильно, то сразу выходит, что длина не может быть конечной.
Но длина не конечная, верно. Просто мне почему-то хотелось этого smile.gif

> По-любому красивая молния
Спасибо! smile.gif

Добавлено немного позже:
> я бы тоже по-участвовал, но знаний не хватает:
Для представления функции не нужно особых знаний.
Я сейчас положу тут программку, которая рисует последовательность по шагам. На ней все и поймешь.

> Скорее очертание горы напоминает. wink.gif
Во-первых, она обязательно снизу доверху, а гора все же имеет один пик.
Во-вторых, образующий зигзаг явно напоминает стилизованное изображение молнии smile.gif. В этой проге все видно.. Управление - клавиши + и - , выход - Esc. Для управления нужно перейти в окно задачи..

uses
CRT,Graph;

function Lightning(x,s:real):real;
var
a,b,Fa,Fb,d,dF:real;
{n:integer;}

begin
a:=0;
b:=3;
Fa:=0;
Fb:=3;
{ n:=0;}
repeat
d:=(b-a)/3;
dF:=(Fb-Fa)/3;
if x<a+d then begin
b:=a+d;
Fb:=Fa+dF*2
end
else if x<a+d+d then begin
b:=a+2*d;
a:=a+d;
Fb:=Fa+dF;
Fa:=Fa+2*dF;
end
else begin
a:=a+2*d;
Fa:=Fa+dF
end;
{ Inc(n)}
until Abs(dF)<s;
Lightning:=(Fa+Fb)/2;
{WriteLn('n:',n,' a=',a:10:8,' b=',b:10:8,' Fa=',Fa:10:8,' Fb=',Fb:10:8)}
end;

var
GrDr,GrMo,iMax,jMax:integer;
x,dx,y,dy:real;
c:char;

begin
GrDr:=0;
GrMo:=0;
InitGraph(GrDr,GrMo,'');
iMax:=GetMaxY;
jMax:=GetMaxY;
SetColor(DarkGray);
x:=0;
dx:=0.2;
while x<=3.0001 do begin
Line(Round(x/3*iMax),0,Round(x/3*iMax),jMax);
x:=x+dx
end;
y:=0;
dy:=0.2;
while y<=3.0001 do begin
Line(0,Round(y/3*jMax),iMax,Round(y/3*jMax));
y:=y+dy
end;
{x:=0;
dx:=0.0001;
while x<=3.0001 do begin
PutPixel(Round(x/3*iMax),jMax-Round(Lightning(x,0.000001)/3*jMax),LightCyan);
x:=x+dx
end;}
dx:=3;
c:='+';
repeat
x:=dx;
SetColor(Black);
MoveTo(0,jMax);
while x<=3.0001 do begin
LineTo(Round(x/3*iMax),jMax-Round(Lightning(x,0.000001)/3*jMax));
x:=x+dx
end;
case c of
'+': dx:=dx/3;
'-': begin
if dx<=1/3 then dx:=dx*3;
if dx>0.5 then dx:=1
end
end;
x:=dx;
SetColor(LightCyan);
MoveTo(0,jMax);
while x<=3.0001 do begin
LineTo(Round(x/3*iMax),jMax-Round(Lightning(x,0.000001)/3*jMax));
x:=x+dx
end;
repeat
c:=ReadKey
until c in['+','-',#27];
until c=#27;
CloseGraph
end.

Автор: Lapp 14.12.2006 7:30

Насчет длины. Нестрогое рассуждение, но, по-моему, верное.

По мере увеличения числа шагов угол наклона отрезков к оси Х увеличивается. Правда, остаются и куски с малым наклоном (и даже один с наклоном единица, в центреЮ а также два с наклоном 2, ...), но их мало. Когда подавляющее число отрезков станет практически вертикальными, то на каждом шагу их длина будет умножаться на 5/3. Вот поясняющий рисунок:

 |         |
| => |\|
| |

Длина добавившейся части равна 2/3.

Таским образом, длина явно бесконечна smile.gif

Автор: Michael_Rybak 14.12.2006 7:50

Вопрос в том, равна ли длина этой фигуры пределу длин ломаных?

Спасибо за программки, красиво smile.gif

Автор: Lapp 14.12.2006 11:39

> Вопрос в том, равна ли длина этой фигуры пределу длин ломаных?
Ну ты здоров придираться! smile.gif Вопрос, конечно, не совсем праздный, но если учесть, что узлы каждой ломаной остаются жить в функции навсегда, и два соседних узла на некотором шаге соединены кратчайшим путем, а через все узлы, которые появятся между ними, необходимо будет пройти, то станет ясно, что длина ломаной - это как минимум оценка снизу. Таким образом, если длина ломаной стремится к 00, то реальная длина кривой есть тем более бесконечность smile.gif

> Спасибо за программки, красиво smile.gif
Если раскомментировать блок в последнем тексте, то ломанная будет накладываться на первый график. Оччень показательно, особенно к вопросу этого мессаджа smile.gif

Автор: hiv 14.12.2006 15:34

А как же определение непрерывности функции в точке?
Функция f(x) тогда и только тогда непрерывна в точке x0, когда она непрерывна в точке x0 справа и слева, то есть когда выполнены следующие условия:
1) функция f(x) определена в точке x0 и в некоторой окрестности этой точки;
2) существует предел значений функции слева: lim(f(x)) при x->x0- = f(x0-);
3) существует предел значений функции справа: lim(f(x)) при x->x0+ = f(x0+);
4) эти два предела совпадают между собой и со значением функции в точке x0: f(x0-)=f(x0+)=f(x0).

Для вашей ломаной при количестве итераций -> бесконечности уже первое условие не выполняется. Ищите дальше dry.gif

Автор: Michael_Rybak 14.12.2006 19:41

Цитата(Lapp @ 14.12.2006 6:39) *

два соседних узла на некотором шаге соединены кратчайшим путем


Вау! Вау! Мои аплодисменты! Очень красивое решение smile.gif


Цитата(hiv @ 14.12.2006 10:34) *


1) функция f(x) определена в точке x0 и в некоторой окрестности этой точки;

Для вашей ломаной при количестве итераций -> бесконечности уже первое условие не выполняется. Ищите дальше dry.gif


Да ладно smile.gif

Очевидно, что для любой точки X существует стремящаяся к ней последовательность Xi такая, что каждый из Xi - один из "зафиксированных" узлов. Более того, соответствующая последовательность f(Xi) стремится к некоторому числу, это тоже легко показать. Именно это число является значением f(X).

Автор: Michael_Rybak 14.12.2006 20:02

Цитата(Lapp @ 14.12.2006 2:30) *

Насчет длины. Нестрогое рассуждение, но, по-моему, верное.

По мере увеличения числа шагов угол наклона отрезков к оси Х увеличивается. Правда, остаются и куски с малым наклоном (и даже один с наклоном единица, в центреЮ а также два с наклоном 2, ...), но их мало. Когда подавляющее число отрезков станет практически вертикальными, то на каждом шагу их длина будет умножаться на 5/3. Вот поясняющий рисунок:
 |         |
| => |\|
| |

Длина добавившейся части равна 2/3.

Таским образом, длина явно бесконечна smile.gif


Просто, чтобы не оставалось белых пятнышек - эти рассуждения легко сделать строгими.

Рассмотрим замену одного отрезка на ломаную из трех звеньев.

Пусть отрезок соединяет точки (x0, y0) - (x0 + 3dx, y0 + 3dy).

По построению имеем, что dx <= dy.

Длина отрезка равна sqrt(9dx^2 + 9dy^2). Оценим длину полученной ломаной. Это будет sqrt(dx^2 + 4dy^2) + sqrt(dx^2 + dy^2) + sqrt(dx^2 + 4dy^2)

Оценим отношение новой длины к старой:

Код
(sqrt(dx^2 + 4dy^2) + sqrt(dx^2 + dy^2) + sqrt(dx^2 + 4dy^2)) / sqrt(9dx^2 + 9dy^2) >
(sqrt(   0 + 4dy^2) + sqrt(   0 + dy^2) + sqrt(   0 + 4dy^2)) / sqrt(9dy^2 + 9dy^2) =
(               2dy +                dy +                2dy) / (sqrt(18)dy) =
5/sqrt(18) = sqrt(25/18).


Таким образом, длина *каждого* отрезка (а, значит, и всей ломаной) на каждой итерации увеличивается как минимум в sqrt(25/18) - оценка грубая, но достаточная smile.gif

Автор: Lapp 15.12.2006 6:56

Цитата(hiv @ 14.12.2006 12:34) *

Для вашей ломаной при количестве итераций -> бесконечности уже первое условие не выполняется.

hiv, почему?.. Рассмотри способ построения внимательно. На каждом шаге на каждом отрезке функция от любой точки этого отрезка либо фиксируется навсегда (если попадает на узел), либо все более ограничивается . Например, в первой трети (и аналогично в третьей), если перед делением границы a и b, то после деления грвницы a и 2/3*b. Во второй сужения не происходит, но происходит постоянное сужение самой второй трети с переходом точек в первую и вторую трети (кроме централной точки, значение которой фиксировано.
В качестве иллюстрации, рассмотри текст функции, которую я привел выше. Там точность считается достигнутой, когда она попадает в процессе итераций на отрезок, функции от концов которого (не забываем, концы всегда зафиксированы навсегда) разнятся не более, чем на величину точности. И это, осмелюсь утверждать, правильно. Вникни потщательнее, все станет на свои места smile.gif.

Цитата(Michael_Rybak @ 14.12.2006 16:41) *

Вау! Вау! Мои аплодисменты! Очень красивое решение smile.gif

[долго роется в смайликах, отыскивая подходящий, не находит, с шумом набирает воздух в легкие, отодвигает клавиатуру, стучит кулаками по столу, стучит ногами по полу, потом кулаками в грудь, ногами по столу, кулаками по полу, ногами в грудь, придвигает клавиатуру, печатает..] Дорогой Друг и Придирчивый Критик! [с видом победившего в одной отдельно взятой стране социализма оглядывает все вокруг] Никто же не виноват, что Вы соединили точки ломаной in question именно отрезками прямой, а не волнистой линией. Буде это была синусоида, я бы не употребил того выражения, которое привело Вас в столь неистовый восторг, так как оно было бы неправомерным. И тогда заключение о минимальности оценки длины кривой длиной ломаной не имело бы силы - ни de jure, ни de fActo [букву "a" в последнем слове нажимает не пальцем, а ударом кулака, отчего она появляется в верхнем регистре]. Прошу Вас учитывать сии "пренебрежимые" (с Вашей точки зрения) обстоятельства, дабы не попасть, как говорится, "в досаднейший просак" [печатая два последних слова, проговаривает их, с явным удовольствием затягивая звук "ccc" в каждом из них].
[Откидывается на спинку кресла, перечитывает написанное, исправляет 9 стилистических, 17 пунктуационных, 28 орфографических ошибок, сделанных в запале, а также 53 ничем не обусловленные опечатки]

Цитата(Michael_Rybak @ 14.12.2006 17:02) *

на каждой итерации увеличивается как минимум в sqrt(25/18) - оценка грубая, но достаточная

Из твоего рассуждения не следует, что "как минимум". Нужно добавить, что на каждом шаге наклон отрезков либо увеличивается (боковых), либо остается постоянным). А при увеличении наклона посчитанный тобой коэфиициент также увеличивается.
smile.gif

Автор: hiv 15.12.2006 16:12

Цитата(Lapp @ 15.12.2006 2:56) *
hiv, почему?.. Рассмотри способ построения внимательно...
Рассмотрел. Понял. Мои возражения отклоняются. smile.gif

Автор: Michael_Rybak 15.12.2006 18:20

Цитата(Lapp @ 15.12.2006 1:56) *

Никто же не виноват, что Вы соединили точки ломаной in question именно отрезками прямой, а не волнистой линией.


Оставляя без внимания перспективу о досссаднейшем просссаке, позволю себе высказать предположение, что на случай синусоиды Вы вполне вероятно изволили бы потрясти виртуальные стены сего форума другой изящнейшей находкой. Потому продолжаю пренебрегать обстоятельствами. Мое неизменное почтение.

Цитата
Из твоего рассуждения не следует, что "как минимум". Нужно добавить, что на каждом шаге наклон отрезков либо увеличивается (боковых), либо остается постоянным). А при увеличении наклона посчитанный тобой коэфиициент также увеличивается.
smile.gif


Посчитаный мной коэффициент был мной посчитан исходя из того предположения, что dx <= dy. А при увеличении наклона это неравенство остается в силе. sqrt(25/18) - это нижняя оценка, которая выполняется всегда, потому и "как минимум" smile.gif Вроде все правильно написал, почему не "как минимум"? Как минимум - это значит, столько, или больше.

Автор: Lapp 15.12.2006 18:41

Цитата(Michael_Rybak @ 15.12.2006 15:20) *

А при увеличении наклона это неравенство остается в силе. sqrt(25/18) - это нижняя оценка, которая выполняется всегда, потому и "как минимум" smile.gif Вроде все правильно написал, почему не "как минимум"? Как минимум - это значит, столько, или больше.

Я кажется понял - поскольку это относится к моему предыдущему рассуждению, то утверждение об увеличении наклона как бы берется тобой оттуда - так? Извини, я просто хотел добавить, что это необходимое условие.
Вопрос снят smile.gif

Автор: Michael_Rybak 15.12.2006 18:45

Цитата(Lapp @ 15.12.2006 13:41) *

Я кажется понял - поскольку это относится к моему предыдущему рассуждению, то утверждение об увеличении наклона как бы берется тобой оттуда - так? Извини, я просто хотел добавить, что это необходимое условие.
Вопрос снят smile.gif


Ну да, вот:

Цитата(Lapp)
Насчет длины. Нестрогое рассуждение, но, по-моему, верное.


Цитата(Я)
Просто, чтобы не оставалось белых пятнышек - эти рассуждения легко сделать строгими.


Цитата(Я)
По построению имеем, что dx <= dy.


(последнее и есть про наклон)

smile.gif