2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 16:54 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
arseniiv в сообщении #774177 писал(а):
Конечно, есть языки достаточно высокого уровня, в которых описание почти не будет замутнено деталями реализации, но всё равно оно будет нести «отпечаток» данного языка.
А давайте вспомним о горячо любимой нами Wolfram Mathematica ;-)

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 17:19 


22/01/13
43
Munin, некоторые языки умеют работать с бесконечностью, например Python, Ruby, Java Правда не знаю на сколько корректно они с ней работают. Во всяком случаи математические пакеты делаются специалистами в математической области для таких же профессионалов, поэтому думаю они будут больше осведомлены об математических абстракциях. Но для понимания какой-нибудь тривиальной вещи(с точки зрения математика) всё ещё считаю предпочтительней использовать код, лично для себя. Хотя если можно будет LaTeX нотацию пощупать, как Вы говорите во всех направления, то я очень даже не против. Как понимаю её нужно переводить вручную на понятный для мат.пакета язык?

Цитата:
Так что же вы хотите понять?

Хотел убедить участников форума прилагать к своим объяснениям не только математическую нотацию, но и код, в тех случаях когда это возможно. В общем, чтобы можно было скопировать код(или нотацию) и выполнить пошагово на своём компьютере.

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 17:38 
Аватара пользователя


22/09/09

1907
ИМХО самый очевидный ответ на вопрос "в каком виде лучше представлять свои измышления" - это: в том же виде, в каком их представляют другие. Для этого нужно проглядеть пару десятков разнообразных источников по математике и computer sci. (книги, журналы уважаемых издательств). Увидим:

1) Код на реальном языке программирования (листинг) приводят довольно редко. Обычно, когда речь идет о конкретном языке, конкретном трансляторе и конкретной компьютерной платформе. Гораздо чаще используют псевдокод (см. Википедию: Псевдокод (язык описания алгоритмов)).

2) Без естественного языка (технического русского, английского и т.д.) не обходится ни одна публикация. (Смотрим солидные издания, в сетевых источниках м.б. исключения.)

3) Мат. формулы записывают, используя стандартную мат. нотацию, а не нотацию языков программирования. Например, $\pi a_{ij}^{2k}$, а не
Код:
pi*a[i,j]^(k*2)


Конечно же корректный код на языке программирования однозначно воспринимается транслятором (хотя и могут быть разночтения для двух версий одного транслятора), но далеко не всегда такой код однозначно воспринимает читатель-человек. Человеку бывает трудно разобраться в нетривиальном листинге и понять суть идеи. Код - это последовательность действий, которые надо проделать, чтобы получить нужный результат, а явного ответа на вопрос "почему получается верный результат" в коде (даже снабженном комментариями) может и не быть.

На практике при отсутствии подробного описания анализ чужого нетривиального кода выливается в трудную работу, сродни разгадыванию ребуса, несмотря на технические средства вроде отладчиков. Однако и чисто словесное описание алгоритма нередко содержит неоднозначности. Т.о. в идеале нужно и то и другое в соразмерных количествах: одно другое дополняет, но не заменяет.

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 17:43 
Заслуженный участник
Аватара пользователя


30/01/06
72407
myname в сообщении #774206 писал(а):
Munin, некоторые языки умеют работать с бесконечностью, например Python, Ruby, Java Правда не знаю на сколько корректно они с ней работают.

В общем, никак не умеют. Скорей всего, вы имеете в виду стандарт численных вычислений IEEE 754 (реализованный не на уровне языка, а на уровне процессора). Он умеет сохранять число, которое в этом стандарте называется "бесконечность" (но математической бесконечностью не являющееся), но при делении бесконечности на бесконечность получается NaN.

myname в сообщении #774206 писал(а):
Но для понимания какой-нибудь тривиальной вещи(с точки зрения математика) всё ещё считаю предпочтительней использовать код, лично для себя.

Для понимания какой-нибудь тривиальной вещи - всё равно, что использовать. Хоть ложку для обуви.

myname в сообщении #774206 писал(а):
Как понимаю её (LaTeX нотацию) нужно переводить вручную на понятный для мат.пакета язык?

Да, но это обычно элементарно.

myname в сообщении #774206 писал(а):
Хотел убедить участников форума прилагать к своим объяснениям не только математическую нотацию, но и код, в тех случаях когда это возможно.

Не-е-е, перебьётесь :-)

myname в сообщении #774206 писал(а):
В общем, чтобы можно было скопировать код(или нотацию) и выполнить пошагово на своём компьютере.

Есть одна незамысловатая истина: чтобы что-то понять, надо трудиться своей головой, а не компьютером. Если вы что-то выполните пошагово на своём компьютере, пониманию это не поспособствует. А вот если поработаете извилинами, ручкой и бумагой - то да, есть шанс.

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 17:52 


22/01/13
43
bin в сообщении #774215 писал(а):
Т.о. в идеале нужно и то и другое в соразмерных количествах: одно другое дополняет, но не заменяет.

И я про то же.

Munin в сообщении #774218 писал(а):
Есть одна незамысловатая истина: чтобы что-то понять, надо трудиться своей головой, а не компьютером. Если вы что-то выполните пошагово на своём компьютере, пониманию это не поспособствует. А вот если поработаете извилинами, ручкой и бумагой - то да, есть шанс.

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

Munin в сообщении #774218 писал(а):
Не-е-е, перебьётесь :-)

Ну и жадина... =)

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 17:59 
Заслуженный участник


27/04/09
28128
Aritaborian в сообщении #774194 писал(а):
arseniiv в сообщении #774177 писал(а):
Конечно, есть языки достаточно высокого уровня, в которых описание почти не будет замутнено деталями реализации, но всё равно оно будет нести «отпечаток» данного языка.
А давайте вспомним о горячо любимой нами Wolfram Mathematica ;-)
Увы, она тоже будет проявляться сквозь код! Как код примеров или конкретных расчётов оно, конечно, нормально (ну, тут уж она будет не намного лучше для чтения, чем что-то другое). Надо ещё попробовать NumPy или что-то там такое для Python, я его недавно стал изучать и даже небольшой пакет написал.

-- Сб окт 12, 2013 21:08:10 --

myname в сообщении #774206 писал(а):
Хотел убедить участников форума прилагать к своим объяснениям не только математическую нотацию, но и код, в тех случаях когда это возможно. В общем, чтобы можно было скопировать код(или нотацию) и выполнить пошагово на своём компьютере.
myname в сообщении #774225 писал(а):
bin в сообщении #774215 писал(а):
Т.о. в идеале нужно и то и другое в соразмерных количествах: одно другое дополняет, но не заменяет.

И я про то же.
Во-первых, тут кодофобии как-то не замечаю. Наоборот, часто вместо формул приводят код, когда первые были бы уместнее, намного уместнее.

Во-вторых, чтобы скопировать и исполнить код, нужно иметь что-то для этого. Участники вряд ли станут писать код на одном и том же языке — и придётся иметь у себя кучу трансляторов и закладок на онлайн-трансляторы. Это неудобно, так что читатель лишится возможности исполнить все коды, которые ему понапишут.

В-третьих, написание кода по формулам, если возможно, обычно прозрачно — никто не станет утруждать себя переписыванием практически одного и того же два раза.

В-четвёртых, некоторые код по формулам пишут неправильно (или при «переписывании одного и того же» можно от скуки опечататься и пр.), и лучше оставить это занятие на совести читателя, а не писателя.

В-пятых, комментарии. Хорошее описание в любом виде их содержит достаточно, тогда как любители писать код где надо и где не нудо часто используют комментарии неправильно (не там; слишком мало; слишком много).

Там, где код нужен, его обычно и так используют, в этом я согласен с Sonic86. И насчёт псевдокода с bin — если не нужен конкретный код, уместен псевдокод — но его уже просто так не исполнишь! (А и не надо.)

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 18:18 


22/01/13
43

(Оффтоп)

Кстати я пытался разобраться с квантовым запутыванием в другой теме. Так вот, если мне кто-нибудь подтвердит мои размышления насчёт шансов выпадения комбинаций спинов или приведёт таблицу вероятностей, то я сделаю наглядную программу. Ещё лучше будет если доступно объяснят про логические квантовые вентили и зачем они нужны, ведь мы не знаем состояния системы.

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 18:25 
Заслуженный участник
Аватара пользователя


30/01/06
72407
myname в сообщении #774225 писал(а):
Иногда этого недостаточно

Да. Но никогда не бывает наоборот.

myname в сообщении #774225 писал(а):
Ну и жадина... =)

Я просто думаю, что вам огромную аудиторию форума (в том числе профессиональных математиков, преподавателей математики) просто не убедить.

arseniiv в сообщении #774232 писал(а):
В-третьих, написание кода по формулам, если возможно, обычно прозрачно

А вот в обратную сторону - далеко не всегда.

Правда, и в прямую - достаточно потрясти за плечи любого специалиста по численным методам...

myname в сообщении #774240 писал(а):
Так вот, если мне кто-нибудь подтвердит мои размышления насчёт шансов выпадения комбинаций спинов или приведёт таблицу вероятностей

Лучше сами прочитайте простую книжку. Например, ФЛФ 8-9.

myname в сообщении #774240 писал(а):
Ещё лучше будет если доступно объяснят про логические квантовые вентили и зачем они нужны, ведь мы не знаем состояния системы.

Оуч.

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 18:28 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
arseniiv в сообщении #774232 писал(а):
Увы, она тоже будет проявляться сквозь код!
Я имел в виду, что язык, который использует Mathematica, наиболее, наверное, абстрагирован от конкретной алгоритмической реализации и приближен к математической нотации.

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 18:36 


22/01/13
43
Munin в сообщении #774247 писал(а):
Я просто думаю, что вам огромную аудиторию форума (в том числе профессиональных математиков, преподавателей математики) просто не убедить.
Попытка - не пытка.
Munin в сообщении #774247 писал(а):
Но никогда не бывает наоборот.
Как наоборот?

(Оффтоп)

Munin в сообщении #774247 писал(а):
Оуч.
Уточню, знаем состояние с некоторой вероятностью?
Munin в сообщении #774247 писал(а):
Например, ФЛФ 8-9.
Не понял аббревиатуры.

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 18:39 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
myname в сообщении #774258 писал(а):
Не понял аббревиатуры.
Фейнмановские лекции по физике.

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 18:44 
Заслуженный участник


27/04/09
28128
Aritaborian в сообщении #774250 писал(а):
Я имел в виду, что язык, который использует Mathematica, наиболее, наверное, абстрагирован от конкретной алгоритмической реализации и приближен к математической нотации.
Может быть. Абстрагирован от реализации и унифицирован — точно (за это мы его и любим? Я, по крайней мере).

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 18:55 
Заслуженный участник
Аватара пользователя


06/10/08
6422
arseniiv в сообщении #774265 писал(а):
Может быть. Абстрагирован от реализации и унифицирован — точно (за это мы его и любим? Я, по крайней мере).


Я вот пробовал недавно писать на Mathematica и понял, что Haskell по этим параметрам лучше :)

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 19:03 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
В Haskell не силён, но уверен, что в последовательности и согласованности (англ. consistency) Mathematica утрёт нос любому языку. Добавим к этому её возможности по представлению математических формул в традиционной нотации, и вуаля. То, о чём говорит ТС: некий компромисс между кодом и математической нотацией.

 Профиль  
                  
 
 Re: Программный код vs. Математическая нотация
Сообщение12.10.2013, 19:07 
Заслуженный участник


27/04/09
28128
Если откинуть СКАнутость, Haskell для описания, может, и лучше… Давно не писал ни на нём, ни на M-е ничего особенного, в последнее время использую M-у как калькулятор сложных вещей, в основном.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу Пред.  1, 2, 3, 4  След.

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



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

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


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

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