Ru-Board.club
← Вернуться в раздел «Программы»

» Mathematica (математика)

Автор: Andrew10
Дата сообщения: 19.06.2013 13:24
popkov
Спасибо большое!
Все время забываю про это самое RuleDelayed!
Ведь уже сталкивался с чем-то подобным

Еще раз спасибо!


Автор: panda3
Дата сообщения: 20.06.2013 09:49
А чо бы не:

Код: B = ArrayPad[A, {{0, 4}, {4, 0}}]
Автор: Andrew10
Дата сообщения: 10.07.2013 19:32
Добрый день всем!

Обращаюсь с очередной "головоломкой" для Mathеmatic-и:

Есть список типа Real, как найти номера элементов списка, принимающих локальный минимум (т.е. не больших своих соседей) без использования циклов типа Do, Table и т.д. ?

Спасибо!
Автор: panda3
Дата сообщения: 11.07.2013 09:41
Ну, например:

Код: Flatten@Position[ListCorrelate[{1, 1, 1}, inputList, {1, -1}, Null,Times, #1 >= #2 <= #3 &], True]+1
Автор: Andrew10
Дата сообщения: 12.07.2013 11:38
panda3

Большое спасибо!

Попробовал все три варианта.
Быстрее всего вариант 1, вариант 2 уступает совсем немного по времени, процентов 10, вариант 3 -более чем в два раза медленнее.

По простоте и понятности для меня вне конкуренции вариант 2. Так что выбираю его. Еще раз спасибо!
Автор: Annymann
Дата сообщения: 02.09.2013 14:13
Подскажите, может ли математика преобразовывать выражения?
пример:
интеграл dx/x [от 0,1 до 0,5] = ln x [от 0,1 до 0,5] = ln 0,5/0,1 = ln 5
Автор: popkov
Дата сообщения: 02.09.2013 14:43
Annymann
Цитата:
интеграл dx/x [от 0,1 до 0,5] = ln x [от 0,1 до 0,5] = ln 0,5/0,1 = ln 5
Может дать сразу конечный результат:
Код: [no]Integrate[1/x, {x, 1/10, 1/2}]
(* => Log[5] *)[/no]
Автор: Annymann
Дата сообщения: 02.09.2013 15:07
popkov, спасибо
Автор: Rom380
Дата сообщения: 01.10.2013 15:49
Здравствуйте!

Кто-нибудь использовал в математике9 remote kernel? Встала задача по переносу длительных расчетов на небольшой но уже по-настоящему многопроцессорный комп, стал пробовать и пока что-то не получается.

Ситуация на данный момент следующая:
1. Есть математика 9.0.1 на ноуте под вин8 и такая же 9.0.1 на сервере с дебианом.
2. Есть SSH доступ с ноута на сервер. Через Putty по ключу авторизуюсь без проблем, не вводя каждый раз пароль и могу запустить тот же MathKernel на сервере через консоль..

Теперь, собственно, проблема.
В математике на ноуте захожу в Kernel configuration options создаю новый Remote kernel, указываю айпишник сервера и имя пользователя для логина. Остальные параметры оставляю по-дефолту.
Создаю новый notebook и указываю, что исполнять его на вновь созданном удаленном ядре. Пишу в нем какую-нибудь команду математики, например, $MachineName и жму выполнить. Математика спрашивает пароль для SSH соединения, ее встроенный клиент пока не знает ключа..
В Путти я вижу, что на сервере возник процесс MathKernel, и даже отработал пару секунд процессорного времени. Т.е. математика имеет доступ к серверу, может запустить там что-то...
Но, вот, результаты удаленных вычислений в нотебуке не появились. Зато появилось окошко Messages и выдало мне, что есть ошибка матлинка, о которой в хелпах нет ничего..

Message:
Цитата:

The kernel ufo24 failed to connect to the front end. (Error = MLECONNECT). You should try running the kernel connection outside the front end.


Пробовал с выключенным Вин-Файрволлом - пофиг. Да, и понятно, SSH-то коннектится, значит проблема не в стенке..

Кто-нибудь может подсказать мне правильный путь, куда копать?
Автор: Rom380
Дата сообщения: 14.10.2013 15:44
Решил по-простому. Поставил gridMath на сервере, поднял грид и забыл об этой головной боли - все отлично работает удаленно впараллель..
Автор: dramadeur
Дата сообщения: 23.10.2013 14:21
Никто не может мне помочь в написании кода для простой задачи? Т.е. достаточны базовые знания программы. Готов отблагодарить $
Автор: vikkiv
Дата сообщения: 24.10.2013 04:13
dramadeur
По логике обычно сначала идёт постановка задачи, а потом вокруг обсуждение/решения, или ты особенный/я? Таких с котами в мешках и так стада вокруг ходят.
Автор: Rom380
Дата сообщения: 06.11.2013 18:43
Никто не заморачивался перенаправлением вывода в Математике? Нужно рассчитанную картинку отправлять на второй экран, подключенный к HDMI. Никто не в курсе, где можно более детальный хелп по OutputSream найти? Или тут в торону ВинAPI копать нуна?
Автор: popkov
Дата сообщения: 07.11.2013 00:51
Rom380
OutputSream позволяет перенаправить Output в произвольный файл или Pipe (не знаю, как это переводится). Рекомендую обратиться в сообщество
http://mathematica.stackexchange.com
с подобным вопросом, но более детально сформулированным: что, как и куда надо выводить?
Автор: Rom380
Дата сообщения: 08.11.2013 14:45
popkov


Цитата:
с подобным вопросом, но более детально сформулированным: что, как и куда надо выводить?

Вот, вот, именно, параметры потока и интересуют! Ок, отпишусь там, спасибо!

Автор: karl_karlsson
Дата сообщения: 10.12.2013 15:34
Ну вот тривиальные проблемы:

Не берется
Integrate[Abs[x], x]

Ошибки на место графика
Plot[Integrate[x, x], {x, -1, 1}]

Все это Maple делает как надо.
Почему так получается?
Автор: r_green
Дата сообщения: 11.12.2013 01:57

Цитата:
Не берется
Integrate[Abs[x], x]

По умолчанию Математика считает х комплексным, т.е., по видимому, решает задачу более общую, чем Maple.
Для вещественного x интеграл берется:
Integrate[Abs[x], x, Assumptions->{x \[Element] Reals}]

Если Вам нужно работать только в поле вещественных чисел, определите это в глобальных $Assumptions:
$Assumptions = Element[_, Reals]

Тогда будет вычисляться и выражение:
Integrate[Abs[x], x]



Цитата:
Ошибки на место графика
Plot[Integrate[x, x], {x, -1, 1}]


Plot[Evaluate@Integrate[x, x], {x, -1, 1}]







Автор: kotika98
Дата сообщения: 12.12.2013 07:53
Мне нужно засейвить результаты вычислений, где каждое вуражение с десяток мегабайтов : мой студент утверждает что Print действует плохо то есть имеет баги, а DumpSave не читается на другом компе. Есть какие нибудь другие разумные решения?
Автор: popkov
Дата сообщения: 12.12.2013 09:57
kotika98
Put и Get, а также Export в формат "WDX" (Wolfram Data Exchange), затем Import.
Автор: karl_karlsson
Дата сообщения: 12.12.2013 16:13
r_green
Спасибо.

Цитата:
По умолчанию Математика считает х комплексным, т.е., по видимому, решает задачу более общую, чем Maple.

Скорее всего только пытается, так как задача становится более общей только если внутри функции присутствует z* как внутри Abs. А вот такие, думаю, Mathematica и не берет.

Ну вот такая ошибка получается, True на место x>0

Код: \[Piecewise]    -(x^2/2)    x<=0
x^2/2    True
Автор: r_green
Дата сообщения: 12.12.2013 19:47
karl_karlsson

Цитата:
Ну вот такая ошибка получается, True на место x>0

Это не ошибка. Такова форма представления Piecewise выражения.
Piecewise[{{val1, condition1}, ... {valN, conditionN}}, defaultVal] вычисляется последовательным вычислением conditions, значением Piecewise становится первое valK, для которого conditionK == True.
Если ни одно из условий не дало результат True, значением становится defaultVal.
Таким образом, Piecewise[{{val1, condition1}, ... {valN, conditionN}}, defaultVal] эквивалентно более регулярной форме Piecewise[{{val1, condition1}, ... {valN, conditionN}, {defaultVal, True}}].
Т.е. True здесь означает "для всех прочих случаев".


Цитата:
А почему необходим Evaluate внутри Plot?

Аргументы Integrate вычисляются.
Вот такое выражение даст ошибку:
x=1;Integrate[x,x]
поскольку значением второго параметра получается не символ, а константа, т.е. вычисляется Integrate[1,1].
Plot[Integrate[Abs[x]], {x, -1, 1}] вычисляет выражение Integrate[Abs[x]] в контекстax x=-1, ..., x=1, получая невалидные выражения Integrate[Abs[-1],-1], ..., Integrate[Abs[1], 1].
Поэтому нужно сначала вычислить Integrate[] в символьном контексте.

Автор: Andrew10
Дата сообщения: 18.12.2013 18:11
Добрый день всем!

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

{a, b, b, c, d, b, e, f,a}

должен получаться список {a, b, c, d, b, e, f,a}

а DeleteDuplicates дает {a, b, c, d, e, f}

Спасибо!
Автор: r_green
Дата сообщения: 18.12.2013 18:45
Andrew10
First /@ Split[{a, b, b, c, d, b, e, f, a}]
Автор: popkov
Дата сообщения: 18.12.2013 18:52
Andrew10
Цитата:
Как организовать удаление из списка следующих друг за другом идентичных элементов?

Первый пример из документации по функции Split решает проблему:
Код: [no]list = {a, b, b, c, d, b, e, f, a};
Split[list][[All, 1]][/no]
Автор: Andrew10
Дата сообщения: 18.12.2013 19:58
r_green
popkov

Спасибо, то, что нужно


Автор: vikkiv
Дата сообщения: 04.01.2014 18:41
Коллеги, как сгенерировать модемный звук, ну или если кто помнит были такие компьютеры ZX Spectrum/Sinclair , там где загрузка с кассеты была, захотелось похожий звук сгенерировать, но что-то не срастается, пробовал текст в бинарник а из него нули-единицы в звук, но как-то не звучит. Например к простой модели
ListPlay[RandomReal[1, {500}]]
добавляем текст конвертированный в бинарный формат:
a=ToExpression[Characters[StringJoin[IntegerString[ToCharacterCode["Ru-board is cool"], 2]]]]
Корректируем верхи-низы для ListPlay
b=0.9*(a+0.1)
и проигрывая результат совсем не модемный звук получается
Код: a = ToExpression[Characters[StringJoin[IntegerString[ToCharacterCode["Ru-board is cool"], 2]]]];
b = 0.9*(a + 0.1);
b // ListPlay
Автор: popkov
Дата сообщения: 04.01.2014 19:45
vikkiv
Насколько я знаю, звук модема ничего общего со случайной последовательностью амплитуд не имеет. Модем "разговаривает" совершенно конкретным набором "фраз", причем совсем небольшим. Последовательность "фраз" и ответов на них также жестко задана. Все это можно "раскопать" и воспроизвести, но строить модель на основе некой случайной последовательности амплитуд - некорректно.
Автор: vikkiv
Дата сообщения: 04.01.2014 20:03
popkov Я конечно не программер, но казалось что данные пересылаются бинарным кодом (пакетами конечно, с контрольными/командными кодами), поэтому в принципе любой текст в stringoвом формате наверное подойдёт как вариант.
Впрочем не важно, любая другая альтернатива тоже сполне впишется. Заранее спасибо.
Автор: popkov
Дата сообщения: 04.01.2014 20:19
vikkiv
Если вы ожидаете, что я намерен "раскапывать" все это, вы заблуждаетесь. Несомненно, протокол установления связи (то самое "пение" модема), равно как и протокол обмена данными между модемом клиента и станцией провайдера, открыты и хорошо документированы. Похоже, вы мешаете их в одну кучу: обмен данными не сопровождается "пением" модема, это совсем другое. Модем "поет" именно на стадии установления соединения с провайдером, это "пение" совершенно одинаково из раза в раз, если не происходит сбоев.
Автор: vikkiv
Дата сообщения: 04.01.2014 21:22
Может неясно выразился, есть такой образец где на этапе передачи данных визуального изображения с кассеты ZX Spectrum отчётливо прослеживается бинарность, и да, не стоит вдаваться в сетевые или какие другие протоколы обмена данных, не в этом суть, в контексте темы если кто в курсе как преобразовать обычный бинарный код (из какого-нибудь текста-документа) в похожий звук (как сверху в ссылке) на языке mathematica? идеальное совпадение вовсе не требуется, какое-то приближение вполне сгодится.

Страницы: 12345678910111213141516171819202122232425262728293031323334

Предыдущая тема: Идея несуществующей программы...


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.