2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Буквоедство. Фунции
Сообщение24.11.2010, 13:47 
Заслуженный участник
Аватара пользователя


07/01/10
2015
Очередной приступ буквоедства. В связи с изучением Haskell всё чаще натыкаюсь на ущербность мат. обозначений для функций. Поэтому несколько вопросов.

1. Возьмём, к примеру, функцию, отображающую число в его квадрат. Можно записать так: $f:x\mapsto x^2$. А что такое $x\mapsto x^2$? Функция? Если так, то почему бы не писать $f=x\mapsto x^2$. Если таким образом обозначать функции, то автоматически получается возможность использовать "анонимные" функции. Напр. $(x\mapsto x^2)(4)=16$, $((n,m)\mapsto \frac{n^2+1}{m!})(1,2)=1$.

2. Вот мы определили, например, дифференциал $df(x,h)=f'(x)h$. А тут нам понадобилась функция, которая отображает $x$ в $df(x,h)$ при фиксированном $h$. Есть ли какой-нибудь путь, кроме введения новой функции $g(f,x)=df(x,h)$, чтобы обозначить такую функцию?

(Оффтоп)

Эта функция, например, можно использовать для записи ряда Тейлора $f(x+h)-f(x)=\sum\limits_{k>0}\frac 1{k!}d^k f(x)$. Ведь если быть строгим, то $d$ -- функция двух переменных, и она должна принимать ещё $h$ вторым аргументом.

В Хаскеле такое решается либо анонимной функцией, либо функцией $\scriptstyle\tt{flip}$, которая переворачивает порядок аргументов у функции.

 Профиль  
                  
 
 Re: Буквоедство. Фунции
Сообщение24.11.2010, 13:55 
Заслуженный участник


09/08/09
3438
С.Петербург
caxap в сообщении #379860 писал(а):
1. Возьмём, к примеру, функцию, отображающую число в его квадрат. Можно записать так: $f:x\mapsto x^2$. А что такое $x\mapsto x^2$? Функция? Если так, то почему бы не писать $f=x\mapsto x^2$. Если таким образом обозначать функции, то автоматически получается возможность использовать "анонимные" функции.
В математике анонимные функции использовались задолго-задолго до Haskell (лямбда-исчисление).
Пользуйтесь на здоровье: $(\lambda x.x^2) 4$.

-- Ср ноя 24, 2010 14:03:34 --

caxap в сообщении #379860 писал(а):
2. Вот мы определили, например, дифференциал $df(x,h)=f'(x)h$. А тут нам понадобилась функция, которая отображает $x$ в $df(x,h)$ при фиксированном $h$. Есть ли какой-нибудь путь, кроме введения новой функции $g(f,x)=df(x,h)$, чтобы обозначить такую функцию?
В Haskell каррированная функция берёт аргументы строго по очереди, поэтому для фиксации второго аргумента при свободном первом приходится использовать flip.
В математике такого ограничения нет: зафиксировать можно любой.
$df(x, h_0)$ отображает $x$ в $df(x,h)$ при фиксированном $h$

 Профиль  
                  
 
 Re: Буквоедство. Фунции
Сообщение24.11.2010, 14:16 
Заслуженный участник
Аватара пользователя


07/01/10
2015
Maslov в сообщении #379863 писал(а):
Пользуйтесь на здоровье: $(\lambda x.x^2) 4$

Это я знаю, но смотрится не очень. По-моему, такое уместно только в литературе по $\lambda$-исчислению и т. п.

Вообще, что обозначают $X\to Y$ и $x\mapsto y$$f:X\to Y$ и $f:x\mapsto y$ соответственно)? Лично я бы назвал первое -- множеством (классом) функций из $X$ в $Y$, а второе -- некоторой фиксированной функцией, но судя по тому, что используется $:$ вместо $\in$ и $=$ соответсвенно, что-то другое под теми обозначениями понимается.

Maslov в сообщении #379863 писал(а):
В математике такого ограничения нет: зафиксировать можно любой.

Т. е. добавление индекса "0" фиксирует аргумент? Вот как бы вы записали формулу Тейлора через дифференциалы со всей строгостью (используя в качестве вольности только символическое возведение $k$-ую степень)?

 Профиль  
                  
 
 Re: Буквоедство. Фун[К]ции
Сообщение24.11.2010, 16:15 
Заслуженный участник
Аватара пользователя


01/08/06
3054
Уфа

(И впрямь буквоедство)

В загоове съеась бува "к" в сове "функции" :D

 Профиль  
                  
 
 Re: Буквоедство. Фунции
Сообщение24.11.2010, 16:34 
Заслуженный участник


09/08/09
3438
С.Петербург
caxap в сообщении #379871 писал(а):
Это я знаю, но смотрится не очень.
"Очень" или "не очень" -- это довольно субъективно. Кто к чему привык, то тому и "очень".
caxap в сообщении #379871 писал(а):
что обозначают $X\to Y$ и $x\mapsto y$$f:X\to Y$ и $f:x\mapsto y$ соответственно)? Лично я бы назвал первое -- множеством (классом) функций из $X$ в $Y$, а второе -- некоторой фиксированной функцией, но судя по тому, что используется $:$ вместо $\in$ и $=$ соответсвенно, что-то другое под теми обозначениями понимается
Да ничего особенного под теми обозначениями не понимается; просто в первом случае описание функции строится как
<название> ':' <множество> '$\to$' <множество>
а во втором запись $f:x\mapsto y$ означает $y = f(x)$. На мой взгляд, не надо искать здесь какой-то дополнительный смысл.

caxap в сообщении #379871 писал(а):
Т. е. добавление индекса "0" фиксирует аргумент?
Математические формулы пишутся для людей, а люди в состоянии понять смысл из контекста или из явного указания. В данном случае -- да: в записи $df(x, h_0)$ индекс $0$ означает, что мы фиксируем значение второй переменной равным $h_0$ и таким образом получаем функцию одной переменной.
caxap в сообщении #379871 писал(а):
Вот как бы вы записали формулу Тейлора через дифференциалы...?
Не очень понял, что я должен записать, а главное -- зачем. В каких, на Ваш взгляд, конкретных случаях частично-применённые функции позволят получить более удобную запись?

 Профиль  
                  
 
 Re: Буквоедство. Фунции
Сообщение24.11.2010, 16:47 


07/05/08
247
Как говорил Фихтенгольц: "Не будьте рабами буквы".

 Профиль  
                  
 
 Re: Буквоедство. Фунции
Сообщение24.11.2010, 18:06 
Заслуженный участник
Аватара пользователя


07/01/10
2015
Maslov в сообщении #379920 писал(а):
Не очень понял, что я должен записать, а главное -- зачем. В каких, на Ваш взгляд, конкретных случаях частично-применённые функции позволят получить более удобную запись?

caxap в сообщении #379860 писал(а):
... ряда Тейлора $f(x+h)-f(x)=\sum\limits_{k>0}\frac 1{k!}d^k f(x)$. Ведь если быть строгим, то $d$ -- функция двух переменных, и она должна принимать ещё $h$ вторым аргументом.

Maslov в сообщении #379920 писал(а):
Математические формулы пишутся для людей, а люди в состоянии понять смысл из контекста или из явного указания

Да, но необходимо домысливание. Напр. ту же ф-лу Тейлора можно записать, используя символ $d_h$ в качестве частично применённого дифференциала. Но и тут домысливание. Хочется обозначений, которые понял бы и компьютер.

 Профиль  
                  
 
 Re: Буквоедство. Фунции
Сообщение24.11.2010, 18:20 
Заслуженный участник


09/08/09
3438
С.Петербург
caxap в сообщении #379977 писал(а):
Хочется обозначений, которые понял бы и компьютер.
Вряд ли это возможно. Хотя попытки придать каждому математическому символу однозначный смысл у нас уже делались:
Уравнение или тождество?
Есть ли синтаксис в математике?
:mrgreen: :mrgreen:

 Профиль  
                  
 
 Re: Буквоедство. Фунции
Сообщение24.11.2010, 18:57 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Ещё на заре вычислительной техники было сделано очень просто: использовать разные обозначениях, чтобы их понимал компьютер, и чтобы их понимал человек. Впоследствии выяснилось, что намного проще сделать, чтобы компьютер понимал заданную систему обозначений для человека, чем выдумывать специальную систему, понятную для компьютера, и переучивать на неё людей.

 Профиль  
                  
 
 Re: Буквоедство. Фунции
Сообщение24.11.2010, 19:42 
Заслуженный участник


09/08/09
3438
С.Петербург
Munin в сообщении #380006 писал(а):
Впоследствии выяснилось, что намного проще сделать, чтобы компьютер понимал заданную систему обозначений для человека, чем выдумывать специальную систему, понятную для компьютера, и переучивать на неё людей.
Насколько я знаю, до сих пор приходится идти на переучивание людей. Иначе, например, неоднозначность символа "=" (проверка на равенство / оператор присваивания) в конструкциях типа
Код:
if (x = y) {
    ...
}
становится источником неисчислимых проблем.

 Профиль  
                  
 
 Re: Буквоедство. Фунции
Сообщение24.11.2010, 19:54 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Maslov в сообщении #380019 писал(а):
Насколько я знаю, до сих пор приходится идти на переучивание людей.

Ну да, бывают ситуации, когда сравнительно небольшое количество людей переучить легче (например, люди более обучаемые). Но в целом тенденция именно к переобучению компьютеров.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модератор: Модераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group