2014 dxdy logo

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

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




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 13  След.
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 00:35 
Заслуженный участник


09/08/09
3438
С.Петербург
cupuyc в сообщении #416942 писал(а):
Всё-таки для математических расчетов, для моделирования физических процессов лучше использовать какой-нибудь функциональный язык.
cupuyc,
а в чём, на Ваш взгляд, преимущество функциональных языков для решения таких задач?

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 00:48 
Заслуженный участник
Аватара пользователя


30/01/06
72407
cupuyc в сообщении #416942 писал(а):
Всё-таки для математических расчетов, для моделирования физических процессов лучше использовать какой-нибудь функциональный язык. Как-то неудобно гвозди отвёрткой забивать.

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

-- 25.02.2011 00:49:34 --

Maslov в сообщении #417012 писал(а):
а в чём, на Ваш взгляд, преимущество функциональных языков для решения таких задач?

Наверняка, в синтаксическом сахаре :-)

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 01:04 
Заслуженный участник


09/08/09
3438
С.Петербург
Munin в сообщении #417016 писал(а):
В функциональных языках проще работать с памятью, не надо возиться,
Сборка мусора не является специфическим атрибутом функциональных языков. В Java и .Net она давным-давно работает.
Munin в сообщении #417016 писал(а):
Наверняка, в синтаксическом сахаре :-)
Ну сахара-то и в императивных (процедурных/ООП) языках предостаточно.

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 01:30 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Maslov в сообщении #417021 писал(а):
Сборка мусора не является специфическим атрибутом функциональных языков.

Я знаю, я говорил в контексте сравнения с плюсами. И потом, сборка мусора в объектных и функциональных языках всё-таки вещи разные.

Maslov в сообщении #417021 писал(а):
Ну сахара-то и в императивных (процедурных/ООП) языках предостаточно.

Для математики - не слишком. Для неё вообще выразительных средств мало где достаточно. APL, разве что, и специализированные матпакеты.

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 01:39 
Заслуженный участник


09/09/10
3729
Munin в сообщении #417036 писал(а):
Для неё вообще выразительных средств мало где достаточно.

Даже на клавиатуре, зараза, нету большинства нужных кнопок.

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 01:45 
Заслуженный участник


09/08/09
3438
С.Петербург
Munin в сообщении #417036 писал(а):
И потом, сборка мусора в объектных и функциональных языках всё-таки вещи разные.
А в чём разница?
Под .Net, например, сборщик мусора один и тот же для императивных языков (C#/VB), функциональных (F#) и динамических (Ruby/Python).

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 08:54 
Аватара пользователя


30/07/10
254
Да чёрт с ним - с гарбейдж коллектором. И в имперавтивных языках это есть. Это всё мелочи. Главный плюс в возможности распараллеливания. Да, и на плюсах можно написать прогу, которая будет решать систему дифуров в тысячу потоков. Но когда доходит дело до взаимодействия потоков - начинается ужас. Сама по себе программа получается монстрообразной. Куча блокировок, как-то нужно пересылать сообщения, а стандартного механизма для этого нет. Приходится изобретать очередной велосипед. А на эрланге такую прогу можно написать буквально за час. И не нужно возиться с проектированием архитектуры. А дальше запускай вычисления хоть в вычислительной сети, хоть на суперкомпьютере.

Ещё один плюс это то, что функция становится отдельной сущностью, типом данных. В системном программировании это особо не нужно. А при решении мат задач очень удобно. Вот, скажем интеграл - некоторая функция, входными параметрами которой является другая функция и пределы интегрирования. В плюсах пришлось бы колдовать с шаблонами или делегатами. А если функция имеет другой синтаксис - вообще беда. Нужно делать какую-то обёртку, как-то устанавливать ей параметры. Гемор ещё тот.

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 09:57 
Заслуженный участник


19/07/08
1266
cupuyc в сообщении #417060 писал(а):
А на эрланге такую прогу можно написать буквально за час.
А какую-нибудь нетривиальную линейку в духе вычисления собственных чисел разреженных матриц "на Эрланге" можно найти? А то боюсь сам за час не справлюсь, приходится по старинке.
Ну и в целом, с распараллеливанием насколько я знаю у функциональных языков пока что всё довольно грустно. То есть если речь заходит о неприятных вещах вроде раскидывания матриц по процессорам, они тут точно так же не справляются как и "обычные" языки. А писать низкоуровневые вещи на них сложнее.
В общем, "про физику" я не согласен. Если уже есть обёртка для нужного решателя на функциональном языке -- оно очень удобно. А если нет -- преимущества нулевые.
cupuyc в сообщении #417060 писал(а):
а стандартного механизма для этого нет.
А MPI на что?

Со второй частью целиком и полностью согласен.

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 12:31 
Заслуженный участник


09/08/09
3438
С.Петербург
nestoklon в сообщении #417069 писал(а):
Ну и в целом, с распараллеливанием насколько я знаю у функциональных языков пока что всё довольно грустно.
Ну да. Насколько я знаю, основной механизм распараллеливания в функциональных языках -- это "parallel map" -- независимое применение функции к элементам списка. Но подобные возможности есть и большинстве параллельных расширений/библиотек для императивных языков. В эрланге встроенных возможностей, конечно, больше, но он изначально проектировался как язык для программирования распределенной обработки данных.
cupuyc в сообщении #417060 писал(а):
Ещё один плюс это то, что функция становится отдельной сущностью, типом данных. В системном программировании это особо не нужно.
В "системном" программировании это тоже нужно: механизм callback'ов используется с незапамятных времен. Но с тех же незапамятных времен нет никаких проблем с его реализацией.
cupuyc в сообщении #417060 писал(а):
Вот, скажем интеграл - некоторая функция, входными параметрами которой является другая функция и пределы интегрирования. В плюсах пришлось бы колдовать с шаблонами или делегатами.
Какое "колдовство" Вы видите в таком описании?
Код:
double Integrate(double (*fnc)(double x), double xMin, double xMax)
Или в C#:
Код:
double Integrate(Func<double, double> fnc, double xMin, double xMax)
И вызов:
Код:
double v = Integrate(x => x * x, 0.0, 1.0);

cupuyc в сообщении #417060 писал(а):
А если функция имеет другой синтаксис - вообще беда.
Что имеется в виду?

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 15:05 
Заслуженный участник
Аватара пользователя


30/01/06
72407
cupuyc в сообщении #417060 писал(а):
Ещё один плюс это то, что функция становится отдельной сущностью, типом данных. В системном программировании это особо не нужно. А при решении мат задач очень удобно.

А почему вообще математическая функция должна быть функцией языка программирования? К ним требования совершенно разные. Например, хочу я проинтегрировать функцию Дирихле...

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 18:45 
Заслуженный участник


09/09/10
3729
Munin в сообщении #417149 писал(а):
Например, хочу я проинтегрировать функцию Дирихле...

Да ради бога, хватайте любую формулу Ньютона-Котеса и интегрируйте. За то, что результат имеет хоть какое-то отношение к действительности никто, сами понимаете, не ручается, ну и что?

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 19:39 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Вы, это, хотя бы предложите хоть какую-нибудь реализацию функции Дирихле как функции языка программирования. Любого на ваш выбор.

А то, что результат мне нужен адекватный, даже не оговаривается, это и так очевидно. Речь же не идёт о математических вычислениях, дающих неправильные результаты.

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 19:52 
Заслуженный участник


09/09/10
3729
Munin в сообщении #417277 писал(а):
Вы, это, хотя бы предложите хоть какую-нибудь реализацию функции Дирихле как функции языка программирования. Любого на ваш выбор.

Легко. Язык Си:
Код:
double funcDirichlet(double x) {
  return 1.0;
}


Пожалуй, надо пояснить: тип double представляет только рациональные числа, а иррациональных представить не может в принципе... Кстати, а разве вообще есть численные методы для вычисления интеграла Лебега? Или функция Дирихле уже стала интегрируема по Риману?

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 21:42 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Joker_vD в сообщении #417282 писал(а):
Легко. Язык Си:Код:double funcDirichlet(double x) {  return 1.0;}

Вот именно :-) А нужна функция Дирихле, а не константная единица. Кстати, интеграл от них разный :-)

Joker_vD в сообщении #417282 писал(а):
Кстати, а разве вообще есть численные методы для вычисления интеграла Лебега?

А я разве сказал, что мне надо численно? Речь, вроде, шла о математике.

Ещё задачка того же сорта: дана функция (действительной переменной), надо определить, является ли она аналитической.

 Профиль  
                  
 
 Re: Язык программирования для математика
Сообщение25.02.2011, 21:52 


19/05/10

3940
Россия
Munin в сообщении #417344 писал(а):
...
Ещё задачка того же сорта: дана функция (действительной переменной), надо определить, является ли она аналитической.


И как она задана?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 195 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 13  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

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