Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Wolfram Mathematica | Математика

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Открыть новую тему     Написать ответ в эту тему

xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wolfram Mathematica 14

Загрузка и поиск "лекарств"в "Варезнике"


 
Здесь обсуждаем вопросы языка Mathematica и программы, которая ИМХО лучше других выполняет свою задачу и, кроме, того очень точно соответствует своему названию, хотя там не забыли и про физиков и химиков и всех остальных:)

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 16:00 01-12-2003 | Исправлено: zAlAn711, 18:21 10-01-2024
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vskazka
Мда. Не разобравшись, сначала бином (кстати, это ещё в школе проходят) приплёл, а потом невнятные бормотания про перебор
Цитата:
что Вам собственно надо  простой перебор - так и перебирайте... если просто так выписать таковы произведения...
Я же там простой пример привёл, что там после этого непонятного?
Цитата:
Но это не задача ни при каком определении оной
Задача достаточно ясная
Цитата:
Требуется сгенерировать список, может есть готовая функция
в русле темы
Цитата:
Странно, что простейший перебор дает повод для писанины
В том-то и дело, что это не тупой перебор
Цитата:
Ну и нельзя через задницу гланды резать, напоследок
Надо же, какая глубокая мысль! Я в восхищении! А ты мое замечание
Цитата:
Оно то так, да только подход немного неизящный (жульнический, что ли) -- решение от обратного
опять не заметил (невнимательность, али не дошло)? Что же тебе мешает предложить короткое и изящное решение? Просто развел флуд

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 18:01 30-06-2010
nikitak

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, вопрос по программированию в Математике.
Задача: Посчитать "гистограммную характеристику" неких свойств объекта. Объект состоит из множества координат точек. Позиция в гистограмме и интегральная характеристика, обновляемая в этой позиции формализуются отдельно.
Моё решение:

Код:
 
(* Вычисление позиции в гистограмме, обновление для одной точки *)
PointUpdateResult[res_, x_, y_, n_] := Block[ {offset = MyOffset[x, y, n] (* позиция в гистограмме *)},  
   ++res[[offset,1]]; (* количество *)
     res[[offset,2]] += Sqrt[x^2 + y^2]; (* "интегральное свойство" *)
];
SetAttributes[PointUpdateResult, {HoldFirst}];  
 
(* итерация по точкам, накопление необходимого свойства *)
UpdateResult[res, x_, y_, w_, r_] :=   Scan[PointUpdateResult[res, #[[1]], #[[2]], w] &, Table[{x, y + i}, {i, 0, r - 1}]];
SetAttributes[UpdateResult, {HoldFirst}];
 
(* функция, работающая с самим обьектом *)
SectorFeatures[x_, Order_]:= Block[ { params=Runs[x], second_params = Mec[x], res=Table[{0,0},Order+1] (* "выделяем память" под гистограмму *)},
  UpdateResult[res,second_params,Order+1,#] & /@ params;
  res // MatrixForm
];
 

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

Всего записей: 108 | Зарегистр. 31-01-2006 | Отправлено: 10:15 04-08-2010 | Исправлено: nikitak, 10:19 04-08-2010
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Странно, по документации обращаться к элементам массива следует так: X[[i]], тем не менее, работает также X[i]. В чем тут прикол?

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 10:48 06-09-2010
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
TeXpert
Не работает:

Код:
In[2]:= t = Range[10]
t[1]
 
Out[2]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
 
Out[3]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}[1]

 
А у тебя работает потому, что ты где-то отдельно присвоил значение индексированной переменной X[i].

Всего записей: 1835 | Зарегистр. 22-03-2003 | Отправлено: 16:50 09-09-2010
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
popkov
У меня, наоборот, X[i] работает, а вот  X[[i]] --- нет (когда писал предыдущее сообщение, я написал, не проверив, вполне возможно, по описанной тобой причине)! Объявлен как Array[X,N]. С двумерным массивом та же песня. Впрочем, я не стал копаться, надо было считать, а считается нормально, результаты корректны, остальное потом проверю
 
Вообще, справка местами странная. Хотел лишний раз уточнить насчет индексации элементов массива, долго пришлось рыться. А ведь простая вещь, в примерах почему-то не отражено
 
Да и пара скобок [ ] выбрана очень неудачно: в математике в определении множества используется пара скобок { }, а аргумент функции заключается в обычные скобки ( ). В Maple с обозначениями все в порядке, а вот в Mathematica это почему-то через заднее место(
 
Кстати, какой функцией лучше решить численно уравнение:  
f(x)-g(x)=0,  
f --- заданная функция, g(x)=Int_{a-x}^{a}h(t)dt,
h также задана (не дифференцируема), a --- фиксированная константа. Заданные функции таковы, что уравнение всегда имеет единственное решение. У меня почему-то заткнулись функции NSolve и FindRoot, пришлось решать методом деления отрезка пополам (пристрелки)

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 19:13 09-09-2010 | Исправлено: TeXpert, 19:16 09-09-2010
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert

Цитата:
а вот в Mathematica это почему-то через заднее место

Я сначала тоже удивлялся, а потом понял, что все это намного глубже и очень даже рационально задумано.
Это в maple все немного через то место, порядка  и логики никакой.  

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 03:03 10-09-2010
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
TeXpert

Цитата:
У меня, наоборот, X[i] работает, а вот  X[[i]] --- нет (когда писал предыдущее сообщение, я написал, не проверив, вполне возможно, по описанной тобой причине)! Объявлен как Array[X,N].

Ну неужели так лень почитать документацию? Функция Array[] генерирует список индексированных переменных:

Код:
In[2]:= Array[X, 10]
 
Out[2]= {X[1], X[2], X[3], X[4], X[5], X[6], X[7], X[8], X[9], X[10]}

 

Цитата:
Вообще, справка местами странная.

Просто справка в новых версиях несколько рассчитана на опытных пользователей... Я уже рекомендовал ранее прекрасную книгу (краткую и информативную) для начинающих пользователей. Сам не заметишь, как Mathematica станет прозрачной как 2x2...
 
Добавлено:

Цитата:
Кстати, какой функцией лучше решить численно уравнение:  
f(x)-g(x)=0,  
f --- заданная функция, g(x)=Int_{a-x}^{a}h(t)dt,
h также задана (не дифференцируема), a --- фиксированная константа. Заданные функции таковы, что уравнение всегда имеет единственное решение. У меня почему-то заткнулись функции NSolve и FindRoot, пришлось решать методом деления отрезка пополам (пристрелки)
 

Кроме этих функций есть еще FindMinimum. Однако твоя проблема, видимо, в том, что ты не указал специально, что интегрирование должно быть численным (надо использовать NIntegrate, а не Integrate) и что функция h(t) - тоже численная. Hадо ее задавать с проверкой на числовое значение аргумента, например:

Код:
h[t_?Numerical]:=(<код, возвращающий число>);

Всего записей: 1835 | Зарегистр. 22-03-2003 | Отправлено: 03:48 10-09-2010
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
terminat0r
Цитата:
Я сначала тоже удивлялся, а потом понял, что все это намного глубже и очень даже рационально задумано
Ну как сказать, все-таки для математика обозначение множеств не через { } --- дико (тем паче сам пакет называется Mathematica), к тому же принято списки обозначать через [ ]. Ну да ладно, не катастрофа
 
popkov
Цитата:
Ну неужели так лень почитать документацию? Функция Array[] генерирует список индексированных переменных
Читал, просто обозначения эти все равно диковаты
Цитата:
Кроме этих функций есть еще FindMinimum
Про это я, естественно, думал, но была надежда на более "прямой" способ
Цитата:
Однако твоя проблема, видимо, в том, что ты не указал специально, что интегрирование должно быть численным (надо использовать NIntegrate, а не Integrate)
А функция g у меня определена как раз через NIntegrate, забыл уточнить, вот примерно так:
Код:
g[j_,x_]:=NIntegrate[h[j,t], {t,a-x,a}]
функция h[j,t] берет свои значения из j-го столбца заданной матрицы. Как уже писал, методом пристрелки я уравнение f(x)-g(x)=0 решаю без проблем
 
Добавлено:

Цитата:
Hадо ее задавать с проверкой на числовое значение аргумента
Спасибо, я тоже подозревал, что что-то уточняющее надо задавать, попробую покопаться в этом направлении

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 06:17 10-09-2010
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
TeXpert
Цитата:
Спасибо, я тоже подозревал, что что-то уточняющее надо задавать, попробую покопаться в этом направлении
Это существеннее, чем кажется: последние версии Mathematica даже внутри заведомо числовых функций вроде NIntegrate и FindRoot все равно в первую очередь делают символьный анализ, который может занимать жуткое количество времени и оперативной памяти, если аргумент нестандартный, как у тебя.

Всего записей: 1835 | Зарегистр. 22-03-2003 | Отправлено: 11:02 10-09-2010
APS

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. А получилось у кого-нибудь полностью подружить MathLink 3.2 с Экселем 2010 в обе стороны? Из математики можно запрашивать данные и возвращать их обратно в эксель, но подключать решатель математики из экселя пока не получилось. Может кто знает куда установщик математики кидает надстройки?

Всего записей: 30 | Зарегистр. 09-06-2002 | Отправлено: 03:28 19-09-2010
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Очень странная ситуация наблюдается. Написал программу, обрабатывающую данные, в конце оптимизируется функция, с помощью NMinimize. Прогнал ее под Windows/Mathematica 7.0.1 для разных значений параметров, все нормально, считается (тьфу-тьфу-тьфу) прекрасно (при этом количество переменных доходит почти до 700, для 4000 программа после получаса счета на лаптопе с двуядерным прцессором 1,6 GHz с 3 Gb RAM завершилась с жалобой на нехватку памяти). Теперь ту же программу решил прогонять под Linux/Mathematica 7.0.0, и тут программа быстро завершается, с жалобой типа "NMinimize::nnum: The function value is not a number at ", тут переменные опущены. Набор данных один и тот же! Может, проблема из-за различия версий: глюк в Mathematica 7.0.0?
 
Добавлено:
Да, похоже на глюк версии, например вот тут говорится:
Цитата:
On Feb 9, 2009, at 4:33 AM, appris@att.net wrote:
 
> Here is an example from Mathematica's user's guide:
>
> In[8]:= NMinimize[x^4 - 3 x^2 + x, x]
>
> Out[8]=  {-3.513905039, {x -> -1.300839566}}
>
> however, trying to replicate it, I get the following:
>
> In[2]:= NMinimize[x^4 - 3 x^2 + x, x]
>
> Out[2]= {-1.070230182, {x -> 1.130901122}}
>
> One way to find the global min, I had to use a constraint such as x<0.
>
> Has anyone come across such a problem?
>
> In[3]:= $Version
>
> Out[3]= "7.0 for Microsoft Windows (32-bit) (November 10, 2008)"
 
This is fixed in 7.0.1.
 
Brett Champion
Wolfram Research


----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 03:48 20-09-2010
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, требуется помощь
 
Как уже писал, речь идет о тестировании одной и той же программы под двумя системами. Под Windows пашет без проблем для разных наборов значений параметров
Под Linux версию Mathematica сменил на 7.0.1, но программа так же завершается, как и в версии Mathematica 7.0.0. Непонятный "бип", а меню Why the Beep? сообщает типа "ядро вышло в процессе вычислений", очень вразумительное, надо сказать(
Пробовал как под простым пользователем, так и root'ом. Вылетает при работе функции NMinimize
Что тут может быть?  
 
Вот информация:  
Linux/RHEL 5.5 Client
"Version" -> "7.0 for Linux x86 (32-bit) (February 25, 2009)",  
"ReleaseID" -> "7.0.1 (1213964, 1213624)"
 
Windows Server 2003 SP2
"Version" -> "7.0 for Microsoft Windows (32-bit) (February 18, 2009)",  
"ReleaseID" -> "7.0.1 (1213965, 1213635)"
 
Процессор Xeon E5504 2 GHz, 2 Gb RAM

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 06:33 22-09-2010
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
TeXpert
Различия могут быть связаны с различием компиляторов под Windows и Linux, что приводит к иным результатам вычислений под Linux. См., например, здесь: переход к новому компилятору под 32-битные версии Windows в Mathematica 7.0.0 неожиданно привел к появлению случайно распределенных числовых погрешностей (невоспроизводимости результатов вычислений в версии 7.0.0 в 32-битных системах). Я не знаю, исправили ли они этот глюк в версии 7.0.1. Так что твоя программа запросто может выдавать другие цифры, соответственно и сообщение "NMinimize::nnum: The function value is not a number at " появляется в связи с этим. А вылетание ядра часто происходит, если NMinimize получает символьную, а не числовую функцию. Попробуй оформить ее как численную через _?NumberQ для каждого аргумента.

Всего записей: 1835 | Зарегистр. 22-03-2003 | Отправлено: 08:13 22-09-2010 | Исправлено: popkov, 08:23 22-09-2010
myual



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть длинное выражение -- P(x,y,z,w,v).
Известно, что оно раскладывается в линейную комбинацию:
\sum\limits_i C_i(y,z,w,v)f_i(x).
 
{f_i(x)} -- конечный набор заданных функций.
 
Вопрос: как можно осуществить такое разложение в Mathematica?

Всего записей: 245 | Зарегистр. 06-12-2006 | Отправлено: 16:39 10-10-2010
TomasVercetti

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 319 | Зарегистр. 09-01-2006 | Отправлено: 17:54 24-10-2010 | Исправлено: TomasVercetti, 19:52 25-10-2010
ResearchMaker

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Недавно разместил статью в ArXiv и получил предложение от сотрудников Wolfram Research создать демонстрационный ролик по ее содержанию. Код с помощью Trial (save-disabled) версии Mathematica я написал. Ни может ли кто-либо имеющий лицензионную Mathematica 7 помочь преобразовать его в файл Demonstration? Шаблон имеется, нужно только скопировать в соответствующие разделы части кода и записать файл. При желании можно включить себя в раздел Авторы.

Всего записей: 2 | Зарегистр. 27-10-2010 | Отправлено: 15:12 27-10-2010 | Исправлено: ResearchMaker, 19:50 27-10-2010
Andrew10

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем!
 
Простой вопрос, но что-то не могу найти ответ в документации:
Как сделать так, чтобы подписи к осям в  функции Plot[] располагались не по умолчанию около окончаний осей, а снизу по центру для горизонтальной и справа по центру для вертикальной оси?
 
ResearchMaker
Есть лицензионный 6.0, семерки нет. Если устроит шестерка, пиши

Всего записей: 780 | Зарегистр. 26-02-2005 | Отправлено: 13:39 09-11-2010 | Исправлено: Andrew10, 13:39 09-11-2010
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ResearchMaker
Ну у меня нет, но я знаю человечка (и главное меня знает он ), у которого есть выход на все лицензионные версии  от 4 до 7.
в пм

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 13:49 09-11-2010
ResearchMaker

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andrew10 и terminat0r, спасибо, что откликнулись!
Возможно, я еще воспользуюсь вашим предложением.
 

Цитата:
Простой вопрос, но что-то не могу найти ответ в документации:  
Как сделать так, чтобы подписи к осям в  функции Plot[] располагались не по умолчанию около окончаний осей, а снизу по центру для горизонтальной и справа по центру для вертикальной оси?  

 
Может быть, использовать команду Inset, задающую расположение текста вместе с опцией Epilog. Andrew10, такой пример есть в программе, которую я тебе отправил.

Всего записей: 2 | Зарегистр. 27-10-2010 | Отправлено: 21:18 10-11-2010
terminat0r



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тестирую свободную запись от wolframa. Очень даже ничего, это наверное будет даже революция. Только надо хоть немного знать математический английский Абсолютно без подготовки можно строить графики, интегрировать, дифференцировать и показывать геом фигуры. Все логично и достаточно быстро. Задержка конечно есть, где-то секунд 2-3.

Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 04:09 24-11-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Компьютерный форум Ru.Board » Компьютеры » Программы » Wolfram Mathematica | Математика


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru