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
3136
Уфа

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

В загоове съеась бува "к" в сове "функции" :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 ] 

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



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

Сейчас этот форум просматривают: mihaild


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

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