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  След.

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



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

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


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

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