![]() |
[Wolfram Mathematica] Программирование в системе.
Здравствуйте.
Я не знаю, была ли на форуме подобная тема - по крайней мере, я аналогов не нашел. Эта тема посвящена обсуждению вопросов программирования в системе Wolfram Mathematica. Я нашел только следующую статью о программировании в Математике: вот она. Она не решила всех моих вопросов. В частности, такой простой вопрос, как наличие и способ применения в Wolfram Mathematica составного оператора, для меня все еще остается открытым. Я пробовал применять "Блок" ([ ... ]), но не получил результата. |
Цитата:
Код:
Block[{x,y}, x=4;y=5;x+y] (*вполне работает*) |
pva, большое спасибо! Я про этот оператор вовсе не знал, а книжку тоже упустил из виду.
Под составным оператором я имел в виду группу операторов, объединенных в один, что дает в результате выполнение всей группы на одной итерации цикла, например. То есть я искал аналог паскалевского "begin ... end", где между этими двумя ключевыми словами помещаются несколько операторов, а выполняются они как один. И, насколько я могу видеть, "Block" является именно таким аналогом. Спасибо! |
HertzToCents там работает? Что за софт, он большой? Функция весьма полезная :)
|
semiono, насколько я понял из википедии:
перевод интервала частот в центы: Код:
(*Mathematica*) Код:
/*c/c++*/ Цитата:
Несмотря на универсальность, "Математика" заточена для математических расчётов (соответсвенно расставлены акценты в реализации). Сложить 20 коротких треков не составит труда, но сложить 2 2-часовых трека студийного качества - ваш ПК такого не вытерпит. Лучше использовать специализированные инструменты. |
Недавно возник следующий вопрос: как описать вектор в качестве аргумента функции (если это вообще возможно)?
Пробовал разные безыскусные варианты, конкретных инструкций не нашел. Получить требуется функцию, которая бы оперировала элементами вектора, получая в качестве аргумента сам вектор. |
Цитата:
Пример: argx[x_]:=x[[1]]; vec={4,5,6}; argx[vec] |
AMDBulldozer, спасибо! Оказывается, надо было использовать отложенное присваивание вместо мгновенного.
Недавно я попытался написать код следующего вида: Цитата:
1. Задаю отдельной функцией А(х, у) условие и два варианта в зависимости от выполнения условия. 2. Пытаюсь применить эту функцию к массивам а иМк и вывести результат в отдельный массив (таблицу) М. Однако на втором этапе возникает ошибка: Цитата:
|
A<>B - это операция StringJoin[A,B] - конкатенация строк. А не равно - сишное A!=B
имхо то же самое можно сделать проще: http://reference.wolfram.com/mathema...MapThread.html Код:
M=MapThread[A,{a,Mk},2] |
Существует ли способ задать в сумме Sum[] или произведении Product[] дополнительное условие на индексы? И в чем состоит этот способ?
Поясню на примере: я бы хотел реализовать в Wolfram Mathematica формулу Лагранжа для многомерной интерполяции. На нее можно взглянуть, например, здесь: http://stu.sernam.ru/book_dig_m.php?id=15 Кроме того, если есть встроенная функция многомерной интерполяции, возвращающая интерполяционный многочлен, было бы неплохо, если бы о ней тоже упомянули. |
Цитата:
Допустим, Вы хотите вычислить след матрицы. Сделаем это, определив зависимости между индексами так, чтобы учитывались только элементы на диагонали матрицы (естественно, просто для примера - в реальной жизни любого человека, который считает след в Mathematica подобным образом надо срочно госпитализировать в Кащенко как идиота): Aij = Table[A[i, j], {i, 10}, {j, 10}] z[i_,j_] := If [ i==j, 1, 0 ] Sum[Sum[z[i, j]Aij[[i, j]], {j, 10}], {i, 10}] P.S. Простите, я понимаю, что подход очевидный и примитивный, но может быть найдете способ как-нибудь от него оттолкнуться? |
http://reference.wolfram.com/mathema...=MapAt&lang=en
TaDa, больше налегай на поиск по словам в книжке (Mathematica Book) |
Существует ли способ установить условия на переменную, которые соблюдались бы всюду по тексту программы?
Например, у меня фигурирует параметр, который может изменяться в интервале от нуля до единицы. Я полагаю, что, если система будет заведомо знать этот интервал, сократится время проведение расчета и вообще улучшится качество последнего. Но, к сожалению, я не нашел подобной опции в справочнике. |
TaDa, функцией Assuming не получится воспользоваться? Или добавить его через двойной амперсенд в Solve, чтобы получилась система неравенств?
|
AMDBulldozer, действительно, использование функции Assuming приводит к нужному результату. Большое спасибо!
|
Вложений: 1
Подскажите, пожалуйста, как реализовать прикрепленную формулу.
Product с Assumptions не приводят к результату, как и вариант с Assuming и зацикленным TimesBy. Во втором случае возвращает нетронутым исходный массив, в первом - возвращается нулевой массив (т.е. Null). |
я не понял, как так k=1, k!=1
Обычно сама математика пишет такие формулы в виде Код:
phi[m_][x_] := Product[(x-x[k])/(x[m]-x[k]), {k,1,n}] Странно, что не получается реализовать её в виде таблицы, должно получиться: Код:
x = Table[...] Код:
x = Table[...] |
pva, в формуле, к сожалению, ошибка, должно быть k != m.
Удалось реализовать это дело с помощью следующего кода: Код:
Psi1[Nu_, m_] := Product[(Nu - NuRoots[[k]])/(NuRoots[[m]] - NuRoots[[k]]), {k, Delete[Range[1, n1], m]}] Тут возник еще один вопрос: существует ли способ скопировать код из Mathematica в Microsoft Word так, чтобы в документ пошла "красивая" запись кода? Может, через MathType как-нибудь? |
Цитата:
|
Цитата:
Плюсы: формулы набираются быстро и выглядят красиво (по сравнению с вордовским плагином) Минусы: надо тащить с собой шрифты математики (штук 6). Иначе в документе каша. Делал статьи полностью в математике - тоже вариант (потом можно экспортировать в латех). Цитата:
Код:
phi[m_][x_] := Product[If[k==m,1,(x-x[k])/(x[m]-x[k])], {k,1,n}] |
Вопрос немного не по теме, но я не стал создавать отдельной темы, поскольку вопрос, скорее всего, пустяковый.
Возможно, вы слышали про недавний сбой Яндекс.Диска, который повлек за собой серьезные нарушения в работе ОС. У меня, в частности, была затронута Wolfram Mathematica. По всей видимости, все ее файлы были удалены из реестра. Я переустановил Mathematica, но теперь работает только Kernel, а основная программа (если можно так ее называть) запустится не может. У меня Windows 7, в окне ошибки она выводит сообщение о том, что программа не работает, и предлагает отладить последнюю. С откатом системы, видимо, не получится, поскольку старые и стабильные точки восстановления исчезли в результате сбоя Яндекс.Диска. Словом, что посоветуете? |
Время: 05:30. |
Время: 05:30.
© OSzone.net 2001-