Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [Wolfram Mathematica] Программирование в системе.

Ответить
Настройки темы
Разное - [Wolfram Mathematica] Программирование в системе.

Новый участник


Сообщения: 26
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте.

Я не знаю, была ли на форуме подобная тема - по крайней мере, я аналогов не нашел.

Эта тема посвящена обсуждению вопросов программирования в системе Wolfram Mathematica. Я нашел только следующую статью о программировании в Математике: вот она. Она не решила всех моих вопросов.

В частности, такой простой вопрос, как наличие и способ применения в Wolfram Mathematica составного оператора, для меня все еще остается открытым. Я пробовал применять "Блок" ([ ... ]), но не получил результата.

Отправлено: 08:09, 29-04-2013

 
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Цитата TaDa:
составного оператора »
Что под этим подразумевается? Какой должен быть результат?

Код: Выделить весь код
Block[{x,y}, x=4;y=5;x+y] (*вполне работает*)
Обычно с математикой идёт толстенная книжка "The Mathematica Book", в которой всё подробно и с примерами расписано. По крайней мере я в своё время всё находил там, гуглить даже не приходилось.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:03, 29-04-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


pva, большое спасибо! Я про этот оператор вовсе не знал, а книжку тоже упустил из виду.

Под составным оператором я имел в виду группу операторов, объединенных в один, что дает в результате выполнение всей группы на одной итерации цикла, например. То есть я искал аналог паскалевского "begin ... end", где между этими двумя ключевыми словами помещаются несколько операторов, а выполняются они как один. И, насколько я могу видеть, "Block" является именно таким аналогом. Спасибо!

Отправлено: 05:57, 30-04-2013 | #3


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


HertzToCents там работает? Что за софт, он большой? Функция весьма полезная

-------
Полезное сообщение


Отправлено: 15:46, 30-04-2013 | #4

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


semiono, насколько я понял из википедии:
перевод интервала частот в центы:
Код: Выделить весь код
(*Mathematica*)
HertzToCents[hertz1_,hertz2_]:=Log[2,hertz2/hertz1]*1200
Код: Выделить весь код
/*c/c++*/
double HertzToCents(double hertz1, double hertz2) {
  /* 1200./log(2) = 3986,3137138648348174443833153873 */
  return log(hertz2/hertz1)*3986.3137138648348174443833153873;
}
Софт большой (хотя гораздо меньше, чем windows) и не дешёвый.

Цитата semiono:
Функция весьма полезная »
Функция очень специфичная (кроме музыки думаю нигде не применяется; и в музыке не везде наверное) и просто реализуемая, поэтому скорее всего готовой реализации там нет.

Несмотря на универсальность, "Математика" заточена для математических расчётов (соответсвенно расставлены акценты в реализации). Сложить 20 коротких треков не составит труда, но сложить 2 2-часовых трека студийного качества - ваш ПК такого не вытерпит. Лучше использовать специализированные инструменты.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:49, 01-05-2013 | #5


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


Недавно возник следующий вопрос: как описать вектор в качестве аргумента функции (если это вообще возможно)?

Пробовал разные безыскусные варианты, конкретных инструкций не нашел.

Получить требуется функцию, которая бы оперировала элементами вектора, получая в качестве аргумента сам вектор.

Отправлено: 05:05, 12-06-2013 | #6


Ветеран


Сообщения: 2029
Благодарности: 704

Профиль | Отправить PM | Цитировать


Цитата TaDa:
как описать вектор в качестве аргумента функции »
Определяете функцию с обычным аргументом, который в теле рассматриваете как список.
Пример:

argx[x_]:=x[[1]];
vec={4,5,6};
argx[vec]

-------
Господа! Убедительная просьба не обращаться за консультациями в ЛС. Поверьте, создать ветку в соответствующем разделе форума гораздо эффективнее.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:24, 12-06-2013 | #7


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


AMDBulldozer, спасибо! Оказывается, надо было использовать отложенное присваивание вместо мгновенного.

Недавно я попытался написать код следующего вида:

Цитата:
A[x_, y_] := If[x <> 0, 3/2*y/(x^2*B), Limit[3/2*y/(x^2*B), x -> 0]]
M = Table[A[a[[i, j, k]], Mk[[i, j, k]]], {i, 1, 5}, {j, 1, Length[Mk[[i]]]}, {k, 1, Length[Mk[[i, j]]]}]
Таким образом я пытаюсь реализовать следующий алгоритм:

1. Задаю отдельной функцией А(х, у) условие и два варианта в зависимости от выполнения условия.
2. Пытаюсь применить эту функцию к массивам а иМк и вывести результат в отдельный массив (таблицу) М.

Однако на втором этапе возникает ошибка:

Цитата:
StringJoin::string: "String expected at position 1 in (-1.04765)<>0."
Помогите, пожалуйста, понять природу этой ошибки и исправить ее.

Последний раз редактировалось TaDa, 01-07-2013 в 08:16.


Отправлено: 08:09, 01-07-2013 | #8

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


A<>B - это операция StringJoin[A,B] - конкатенация строк. А не равно - сишное A!=B

имхо то же самое можно сделать проще: http://reference.wolfram.com/mathema...MapThread.html
Код: Выделить весь код
M=MapThread[A,{a,Mk},2]
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:32, 01-07-2013 | #9


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


Существует ли способ задать в сумме Sum[] или произведении Product[] дополнительное условие на индексы? И в чем состоит этот способ?

Поясню на примере: я бы хотел реализовать в Wolfram Mathematica формулу Лагранжа для многомерной интерполяции. На нее можно взглянуть, например, здесь:

http://stu.sernam.ru/book_dig_m.php?id=15

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

Отправлено: 08:50, 19-08-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [Wolfram Mathematica] Программирование в системе.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений TaDa Программирование и базы данных 13 17-04-2013 09:47
Разное - [Mathematica] Задание функции 0_5Mandarinki Программирование и базы данных 2 29-10-2008 20:39
[решено] Mathematica 4.2, как заставить дождаться конца установки? rhiannon Автоматическая установка приложений 5 21-04-2005 07:51
Программирование andy666 Программирование и базы данных 3 24-10-2003 22:17
Программирование andy666 Программирование и базы данных 1 10-10-2003 19:52




 
Переход