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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
popkov

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

Цитата:
Вопрос к профессиональным математикам.

Боюсь, вы ошиблись форумом: здесь обсуждают систему Wolfram Mathematica. Думаю, вам сюда:
http://stats.stackexchange.com/

Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 23:15 15-07-2014
Fsp050

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ок. А в математике этого никак не сделать?

Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 20:42 16-07-2014
Alex_B



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У кого лицензионная прога, напишите разрабам об ошибке в Хэлпе. Думал, в 10-ой исправят, однако не исправили.
 
== TuringMachine ==
= Datails =

Цитата:
For a 1D Turing machine, each step in the evolution generated by TuringMachine is given in the form {{s,x,dx},{Subscript[a, 1],Subscript[a, 2],\[Ellipsis]}}, where the head is in state s, the cells on the tape have values Subscript[a, i], the head is at position x relative to the Subscript[a, i], and has moved dx relative to its starting position.

Должно быть Subscript[a, 1].
 
Чтобы сообщить об ошибке нужно выбрать Help затем Give Feedback...

Всего записей: 1088 | Зарегистр. 10-01-2002 | Отправлено: 07:00 17-07-2014 | Исправлено: Alex_B, 07:01 17-07-2014
popkov

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

Цитата:
 можно ли результаты измерений смоделировать на ПК?  

Все можно смоделировать, если построить математическую модель. В Mathematica имеется полный набор статистических функций и генераторов случайных чисел для моделирования результатов статистических экспериментов. Только вот математическую модель на основе словесного описания Mathematica сама не построит - это надо делать самостоятельно.

Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 08:47 17-07-2014
Fsp050

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
popkov
А как это делать? есть пример какой-нить. видеофайл или книжка.

Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 15:12 18-07-2014
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Fsp050
Похоже вы гуманитарий, не прошедший даже базового курса статистики. Несмотря на кажущуюся простоту вашей задачи, строгий подход к ее моделированию требует знания (или обоснованного предположения о) ряде статистических свойств моделируемых объектов (т.е. испытуемых в вашем экспетрименте). Учитывая, что люди - не автоматы, а индивидуумы, в основе модели (по-хорошему) должны лежать подлинные статистические данные, а сама она должна быть основана на общепринятых закономерностях/корреляциях в отношении моделируемых процессов.  
 
Это все общие слова, но ваша формулировка задачи столь общая и абстрактная, что для более конкретного ответа нет исходных данных. Одно вам следует ясно понять: статистика - наука экспериментальная, нет статистики без реального опыта. Невозможно смоделировать поведение людей, если не накоплены статистические данные о том, как они в эквивалентных обстоятельствах действовали раньше.  
 
Статистика - строгая наука, в ней нет места невнятным формулировкам.

Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 18:57 18-07-2014 | Исправлено: popkov, 19:13 18-07-2014
Fsp050

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
popkov
я знаю что есть статистика. От элементарных статистик до факторных моделей.  
Мне приходится с этим работать.
Моделирование выборки это для меня новое. Я этого никогда не делал и пытаюсь понять как эту элементарную задачу решать
Что я должен сформулировать для этой задачи? Вернее какие данные предоставить, чтобы уже было о чем разговаривать ?
Могу предоставить сами методики , по которым кагбе надо измерять. Данные по их стандартизации.

Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 19:50 18-07-2014
1lex1

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток.
Ввел выражение
Код:
NSolve[{x = z/(1*10^(-9)/y^3 + 1.1*10^8/y^2.3 + 2.1*10^6/y^1.65) + z*z*y*y*6.9*10^(-14)}, {y}, WorkingPrecision -> 1]

В итоге программа за 15 минут заняла 2ГБ и выдала сообщение

Код:
No more memory available.
Mathematica kernel has shut down.
Try quitting other applications and then retry.

 
Вроде бы точность некуда уменьшать. Или нужно по-другому записывать ему задачу, чтоб он столько памяти не занимал?
Возможно ли ему как-то указать диапазон возможных значений P, f, B, так как, думаю, может не существовать решения конечных размеров обеспечивающего заданную точность при значениях P, f и B до бесконечности?

Всего записей: 278 | Зарегистр. 22-11-2013 | Отправлено: 22:47 09-08-2014
popkov

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

Цитата:
Или нужно по-другому записывать ему задачу
Во-первых, вы допустили стандартную ошибку: вместо Equal (==) использовали Set (=). NSolve не выдает сообщение об ошибке, т.к. интерпретирует результат выполнения Set как выражение, которое должен приравнять к нулю.
Во вторых, настоятельно рекомендуется избегать неточных чисел, особенно в степенях.

Цитата:
Вроде бы точность некуда уменьшать.
Точность вычислений у вас MachinePrecision - ниже она быть и не может, так что WorkingPrecision -> 1 в лучшем случае ни на что не влияет, а в худшем - увеличивает требования к ресурсам. Учтите также, что использование вычислений с произвольной точностью далеко не всегда приводит к возрастанию требований к ресурсам: в некоторых случаях автоматический контроль погрешностей, который сопровождает вычисления с произвольной точностью, помогает встроенным алгоритмам быстрее "сориентироваться" и выдать корректный ответ за существенно меньшее время. Однако для этого отнюдь не достаточно просто указать WorkingPrecision -> 20 - необходимо, чтобы плюс к этому в вашем выражении не было ни одного числа с MachinePrecision.

Цитата:
Возможно ли ему как-то указать диапазон возможных значений P, f, B
Можно - читайте документацию. В 10-й версии возможности NSolve в этом смысле были существенно расширены. Ранее в таких случаях обычно использовали Reduce.
 
Вот корректная запись вашего уравнения с MachinePrecision:
Код:
NSolve[{x==z/(1*^-9/y^3+1.1*^8/y^(23/10)+2.1*^6/y^(165/100))+z*z*y*y*6.9*^-14},{y}]
(На моей машине после 20 минут работы ответ так и не был получен, но MathKernel занял лишь около 350 Мб памяти.)
А вот - в точном виде:
Код:
Solve[{x==z/(1*^-9/y^3+11*^7/y^(23/10)+21*^5/y^(165/100))+z*z*y*y*69*^-15},{y}]

Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 02:40 10-08-2014 | Исправлено: popkov, 03:12 10-08-2014
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
1lex1
Дискретный набор решений можно быстро получить с помощью NMinimize:
Код:
eqn2 = x - z/(1*^-9/y^3 + 11*^7/y^(23/10) + 21*^5/y^(165/100)) +  
   z*z*y*y*69*^-15;
sol1 = NMinimize[Norm[eqn2], {y, x, z}, Method -> "RandomSearch",  
  WorkingPrecision -> 20]

Цитата:
{0, {y -> 0.15897991629593558973, x -> 1.1825430021527500025*10^-10,  
  z -> 0.89873007418275270536}}

Можно задать границы поиска:
Код:
sol2 = NMinimize[Norm[eqn2], {{y, 1, 2}, {x, 1, 10}, {z, 0, 1}},  
  Method -> "RandomSearch", WorkingPrecision -> 20]

Цитата:
{3.7478988748157667093*10^-22, {y -> 1.0559325904411276938,  
  x -> 1.1431655484306875042*10^-9, z -> 0.11314743924475989532}}

Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 13:06 10-08-2014
karl_karlsson



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1lex1
А что вам надо y как функции x и z?
Значения реальные, либо комплексные?
И что это такое P, f, B?
Во общем то из тех задач, что математика понимает, только очень малое число она решает.
Ну и лучше поменяйте места z и x, будет привычнее.
 
popkov

Код:
Plot3D[{-0.001, 0.001,  
  x/(1*10^-9/y^3 + 1.1*10^8/y^2.3 + 2.1*10^6/y^1.65) +  
   6.9*10^-14*x^2*y^2}, {x, -50, 50}, {y, 0, 50}]

 
И сразу видно, имеем довольно гладкую поверхность и что решения составляют 2 довольно гладкие кривые - z>0 и z<0. Они еще мало отличаются.
 
Значит необходимо либо циклы, которые обходят z, потом x, либо некие ряды, так как поверхность довольно гладкая.

Всего записей: 2027 | Зарегистр. 14-03-2007 | Отправлено: 15:14 10-08-2014
1lex1

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
popkov, спасибо за разъяснения и примеры.
Пробовал в Mathematica 5.2.0.0
ему не понравилось [no][/no] и я не понял их смысл.

Код:
NSolve[{x==z/(1*^-9/y^3+1.1*^8/y^(23/10)+2.1*^6/y^(165/100))+z*z*y*y*6.9*^-14},{y}]
2 часа считало, занимало 300 МБ, потом быстро заполнило память и выдало ошибку
Код:
No more memory available.
Mathematica kernel has shut down.
Try quitting other applications and then retry.


Код:
Solve[{x==z/(1*^-9/y^3+11*^7/y^(23/10)+21*^5/y^(165/100))+z*z*y*y*69*^-15},{y}]
Занимает 2ГБ за 10 мин
Код:
No more memory available.
Mathematica kernel has shut down.
Try quitting other applications and then retry.
Но при этом в ОЗУ остается еще 0,5ГБ свободного, поэтому не понятно зачем он хочет закрытия приложений
 
Буду пробовать  reduce
Код:
Reduce[z > 50 && z < 200000 && y > 10 && y < 5000 && x == z/(1*10^(-9)/y^3 + 1.1*10^8/y^2.3 + 2.1*10^6/y^1.65) + z*z*y*y*6.9*10^(-14), y, Reals]
, считает уже 2 часа память занимает всего 150МБ
 
Добавлено:
karl_karlsson
И что это такое P, f, B?
Описался, у меня {P, f, B} = {x, y, z}
 
Принципиального значения непосредственного получения y = f(x,z) нет (думал, что mathematica сможет это сделать в одну строку), поэтому если не справится reduce, то сделаю близко к советам выше, используя другую привычную мне программу, сделаю цикл, ищущий каждый раз решение, или создам массив и аппроксимирую его.

Всего записей: 278 | Зарегистр. 22-11-2013 | Отправлено: 18:46 10-08-2014 | Исправлено: 1lex1, 19:07 10-08-2014
popkov

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

Цитата:
 Но при этом в ОЗУ остается еще 0,5ГБ свободного, поэтому не понятно зачем он хочет закрытия приложений  
Потому что под 32-битными системами Mathematica не может использовать более 2 Гб оперативной памяти.

Цитата:
 ему не понравилось [no][/no] и я не понял их смысл.  
Их и не должно быть. При копировании из поста этих тэгов нет.

Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 19:30 10-08-2014 | Исправлено: popkov, 19:30 10-08-2014
litmax

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите гуманитарию как решить такую задачу по теории вероятности. Она из серии маркетинга.  откуда они их берут)
 
условия такие
"бизнесмен решил для себя по каким запросам он будет продвигать свой сайт, он выделил 20 запросов. Каждый запрос имеет разную частоту, один 800 запросов в мес, второй 400, третий 500 и так далее.  В итоге, если сложить все запросы, по которым  написал статьи  сеошник то получиться 18000. Какая вероятность, что его товар(услугу)  будет покупать хотя бы один человек в день. пока он занимается этим бизнесом
 
Помогите, пож-та.

Всего записей: 9 | Зарегистр. 10-09-2014 | Отправлено: 16:31 21-09-2014 | Исправлено: litmax, 16:37 21-09-2014
Griefin

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот уже десять версий миновало, а мизерная длина засечек (ticks) по умолчанию так и осталась. Ее все еще приходится увеличивать вручную или с помощью стороннего пакета CustomTicks. Зато можно легко поменять цвет и толщину.

Всего записей: 759 | Зарегистр. 19-07-2003 | Отправлено: 22:20 05-10-2014 | Исправлено: Griefin, 22:25 05-10-2014
vikkiv



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть двумерный массив:
arr={{a0,b2,20},{ds,ed,14},{ag,db,50},{ge,tu,3}}
как из него выбрать элементы где второй слот содержит букву "d" ?
Прoбую Cases и Select но не получается правильно задать pattern~~__ (насколько понимаю это #2 .. &)
похожая проблема с третьей позицией, например нужны элементы третьего слота #3>15&
т.е. в первом случае на выходе нужно {{ds,ed,14},{ag,db,50}}
а во втором ожидаемый результат {{a0,b2,20},{ag,db,50}}
 
если однозначно задать типа Cases[arr,{_,ed,_}] то ответ выдаёт, а на уровне wildcard облом.

Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 05:00 06-10-2014
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vikkiv
Цитата:
 если однозначно задать типа Cases[arr,{_,ed,_}] то ответ выдаёт, а на уровне wildcard облом.
Это ожидаемо, т.к. Cases не поддерживает string patterns. Тем более, что массив и не содержит никаких String - лишь Symbol и Number. Вот одно из возможных решений:
Код:
Select[arr, ! StringFreeQ[ToString@#[[2]], "d"] &]

Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 05:14 06-10-2014 | Исправлено: popkov, 05:14 06-10-2014
vikkiv



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да, спасибо, очень даже подходит, естественно по аналогии если совместно с первым и второй вопрос решает, например так:
Select[arr,!StringFreeQ[ToString@#[[2]],"d"]&&#[[3]]>15&]

Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 06:26 06-10-2014 | Исправлено: vikkiv, 06:30 06-10-2014
Cossack

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На свежеустановленном Windows 7 Professional N 64 bit, не запускатся Mathematica 10.  
Kernel без проблем, а GUI нет. Процесса 2, один пропадает через пару секунд, второй остается висеть, причем занимает то 120, то 480, то 560K памяти. После танцев с бубнами и многократных рестартов пк, один раз запустилось, но сейчас опять нет. В гугле искал, описание аналогичной проблемы есть, но решения пока не увидел.
 
Кто-то сталкивался?

Всего записей: 15540 | Зарегистр. 26-02-2002 | Отправлено: 01:43 11-11-2014 | Исправлено: Cossack, 16:26 11-11-2014
vikkiv



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
маловероятно что именно с этим связанно - но для исключения из списка возможных источников проблемы было следующее (в этой-же теме кажется, местные гуру помогли решить): перевёрнутые шрифты при запуске математики - оказалось несовместимость видеодрайверов (устаревшая карта), фактически на уровне Оси (отсутствие поддержки DirectX какого-то, т.е. WDDМ 1.1 или что-то в этом роде, без Aero и т.д.)
 
Может WindowsLog что пишет?

Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 23:27 11-11-2014 | Исправлено: vikkiv, 23:28 11-11-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 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