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

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

Автор: Fsp050
Дата сообщения: 18.07.2014 14:12
popkov
А как это делать? есть пример какой-нить. видеофайл или книжка.
Автор: popkov
Дата сообщения: 18.07.2014 17:57
Fsp050
Похоже вы гуманитарий, не прошедший даже базового курса статистики. Несмотря на кажущуюся простоту вашей задачи, строгий подход к ее моделированию требует знания (или обоснованного предположения о) ряде статистических свойств моделируемых объектов (т.е. испытуемых в вашем экспетрименте). Учитывая, что люди - не автоматы, а индивидуумы, в основе модели (по-хорошему) должны лежать подлинные статистические данные, а сама она должна быть основана на общепринятых закономерностях/корреляциях в отношении моделируемых процессов.

Это все общие слова, но ваша формулировка задачи столь общая и абстрактная, что для более конкретного ответа нет исходных данных. Одно вам следует ясно понять: статистика - наука экспериментальная, нет статистики без реального опыта. Невозможно смоделировать поведение людей, если не накоплены статистические данные о том, как они в эквивалентных обстоятельствах действовали раньше.

Статистика - строгая наука, в ней нет места невнятным формулировкам.
Автор: Fsp050
Дата сообщения: 18.07.2014 18:50
popkov
я знаю что есть статистика. От элементарных статистик до факторных моделей.
Мне приходится с этим работать.
Моделирование выборки это для меня новое. Я этого никогда не делал и пытаюсь понять как эту элементарную задачу решать
Что я должен сформулировать для этой задачи? Вернее какие данные предоставить, чтобы уже было о чем разговаривать ?
Могу предоставить сами методики , по которым кагбе надо измерять. Данные по их стандартизации.
Автор: 1lex1
Дата сообщения: 09.08.2014 21:47
Доброго времени суток.
Ввел выражение
Код: 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]
Автор: popkov
Дата сообщения: 10.08.2014 01:40
1lex1

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

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

Цитата:
Возможно ли ему как-то указать диапазон возможных значений P, f, B
Можно - читайте документацию. В 10-й версии возможности NSolve в этом смысле были существенно расширены. Ранее в таких случаях обычно использовали Reduce.

Вот корректная запись вашего уравнения с MachinePrecision:
Код: [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}][/no]
Автор: popkov
Дата сообщения: 10.08.2014 12:06
1lex1
Дискретный набор решений можно быстро получить с помощью NMinimize:
Код: [no]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][/no]
Автор: karl_karlsson
Дата сообщения: 10.08.2014 14:14
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}]
Автор: 1lex1
Дата сообщения: 10.08.2014 17:46
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}]
Автор: popkov
Дата сообщения: 10.08.2014 18:30
1lex1

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

Цитата:
ему не понравилось [no][/no] и я не понял их смысл.
Их и не должно быть. При копировании из поста этих тэгов нет.
Автор: litmax
Дата сообщения: 21.09.2014 15:31
Подскажите гуманитарию как решить такую задачу по теории вероятности. Она из серии маркетинга. откуда они их берут)

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

Помогите, пож-та.
Автор: Griefin
Дата сообщения: 05.10.2014 21:20
Вот уже десять версий миновало, а мизерная длина засечек (ticks) по умолчанию так и осталась. Ее все еще приходится увеличивать вручную или с помощью стороннего пакета CustomTicks. Зато можно легко поменять цвет и толщину.
Автор: vikkiv
Дата сообщения: 06.10.2014 04:00
есть двумерный массив:
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 облом.
Автор: popkov
Дата сообщения: 06.10.2014 04:14
vikkiv
Цитата:
если однозначно задать типа Cases[arr,{_,ed,_}] то ответ выдаёт, а на уровне wildcard облом.
Это ожидаемо, т.к. Cases не поддерживает string patterns. Тем более, что массив и не содержит никаких String - лишь Symbol и Number. Вот одно из возможных решений:
Код: [no]Select[arr, ! StringFreeQ[ToString@#[[2]], "d"] &][/no]
Автор: vikkiv
Дата сообщения: 06.10.2014 05:26
да, спасибо, очень даже подходит, естественно по аналогии если совместно с первым и второй вопрос решает, например так:
Select[arr,!StringFreeQ[ToString@#[[2]],"d"]&&#[[3]]>15&]
Автор: Cossack
Дата сообщения: 11.11.2014 00:43
На свежеустановленном Windows 7 Professional N 64 bit, не запускатся Mathematica 10.
Kernel без проблем, а GUI нет. Процесса 2, один пропадает через пару секунд, второй остается висеть, причем занимает то 120, то 480, то 560K памяти. После танцев с бубнами и многократных рестартов пк, один раз запустилось, но сейчас опять нет. В гугле искал, описание аналогичной проблемы есть, но решения пока не увидел.

Кто-то сталкивался?
Автор: vikkiv
Дата сообщения: 11.11.2014 22:27
маловероятно что именно с этим связанно - но для исключения из списка возможных источников проблемы было следующее (в этой-же теме кажется, местные гуру помогли решить): перевёрнутые шрифты при запуске математики - оказалось несовместимость видеодрайверов (устаревшая карта), фактически на уровне Оси (отсутствие поддержки DirectX какого-то, т.е. WDDМ 1.1 или что-то в этом роде, без Aero и т.д.)

Может WindowsLog что пишет?
Автор: Cossack
Дата сообщения: 12.11.2014 01:51
Да, Eventviewer пишет ошибку... правда в чём там дело непонятно.

Спасибо за наводку, попробую завтра разобраться
Автор: popkov
Дата сообщения: 12.11.2014 03:43
Cossack

Цитата:
не запускатся Mathematica 10

Версия 10.0.0 или 10.0.1? В версиии 10.0.0 было много проблем с производительностью. Если 10.0.1 установлена после 10.0.0 - попробуйте удалить кэш (директории, в имени которых "Caches") из
Код: %UserProfile%\AppData\Local\Mathematica\FrontEnd
Автор: Andrew10
Дата сообщения: 13.11.2014 23:36
Доброй ночи (дня) всем!

Вот такой вопрос: можно ли сделать так, чтобы программа в файле с расширением *.m, содержащая комментарии на русском языке, записывалась в читабельном формате в ASCII - файл. То есть, чтобы вместо кодов типа \:0424\:0443\:043d ... писался бы обычный текст на русском?

Спасибо!

Автор: popkov
Дата сообщения: 13.11.2014 23:45
Andrew10
Цитата:
чтобы программа в файле с расширением *.m, содержащая комментарии на русском языке, записывалась в читабельном формате в ASCII - файл
А как насчет конкретного примера, позволяющего тестировать?
Автор: Andrew10
Дата сообщения: 14.11.2014 09:08
popkov

Цитата:
А как насчет конкретного примера, позволяющего тестировать?


Вот пример:
Создаю в окне редактора пакетов такой код, содержащий комментарий на русском:
[more]

(* ::Package:: *)
(* :Title: Test *)
(* :Authors: Andrew10 *)
(* :Mathematica Version: 6.0-9.01 *)
(* :Limitation: None. *)

BeginPackage["Test`"];
Square::usage = "Squar[x] returns the square of the argument";
Begin["`Private`"];

(***********************************************
/
/ Это тестовый пример простого пакета
/
/***********************************************)
Square[x_]:=x^2;
End[];
EndPackage[];

[/more]

Сохраняю его в файле с расширением *.m как пакет, открываю этот файл в текстовом редакторе
и вижу на месте строк комментария вот что:

[more]
(***********************************************\
/ \
/ \:042d\:0442\:043e \:0442\:0435\:0441\:0442\:043e\:0432\:044b\:0439 \:043f\:0440\:0438\:043c\:0435\:0440 \:043f\:0440\:043e\:0441\:0442\:043e\:0433\:043e \:043f\:0430\:043a\:0435\:0442\:0430 \
/ \
/***********************************************)
[/more]

Весь остальной код сохраняется в читабельном виде.
Автор: popkov
Дата сообщения: 14.11.2014 10:30
Andrew10

Цитата:
открываю этот файл в текстовом редакторе

Это ключевой момент. На соответствующей странице документации читаем:

Цитата:
The Wolfram Language always uses CharacterEncoding->"ASCII" for package source files.

А что такое "ASCII"? Читаем здесь:

Цитата:
ASCII covers the characters on a normal American English keyboard.

Другими словами, .m-файлы могут содержать исключительно символы с номерами 0 - 127 стандартной ASCII-таблицы.
Однако Mathematica не будет ругаться, если создать в тесктовом редакторе файл с русскими буквами, и затем открыть/импортировать его. Но сохранить его в таком виде не позволит. Как я понимаю, это связано в настоящее время в первую очередь с тем, что полноценная поддержкя Unicode в Mathematica все еще не реализована (и вряд ли появится в ближайшем будущем). Соответственно, без Unicode файлы Mathematica не могут быть платформонезависимыми, а это - важное требование к ним, поставленное разработчиками с самого начала.
Автор: Andrew10
Дата сообщения: 14.11.2014 13:07
popkov

Спасибо за исчерпывающий ответ.

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

Еще раз спасибо!
Автор: popkov
Дата сообщения: 14.11.2014 15:25
Andrew10

Цитата:
То, что не будет записывать как хотелось бы - жалко, конечно.

Думаю, эту проблему можно решить на уровне текстового редактора. Например, в EmEditor можно добавить на панель инструментов макрос, который будет перекодировать русские буквы обратно в привычный вид. У меня готового макроса нет, но его нетрудно сделать самому: он должен просто поиском и заменой заменять закодированные символы на обычные.


Добавлено:
А чтобы при сохранении сохранялась исходная структура документа, можно отключить принудительное заворачивание текста:

Код: [no]SetOptions[$FrontEnd, PageWidth->Infinity][/no]
Автор: Andrew10
Дата сообщения: 14.11.2014 16:31
popkov

Я под Windows пользуюсь редактором Far-а.
Собрался пойти по пути, аналогичный тому, что предлагаете Вы: пропускать сохраненный файл через простенький код на основе Perl-а, который будет производить такую замену.

Автор: popkov
Дата сообщения: 23.11.2014 15:31
Andrew10

Цитата:
Вот такой вопрос: можно ли сделать так, чтобы программа в файле с расширением *.m, содержащая комментарии на русском языке, записывалась в читабельном формате в ASCII - файл. То есть, чтобы вместо кодов типа \:0424\:0443\:043d ... писался бы обычный текст на русском?

Похоже, можно полностью переопределить действие пункта меню "Save" через FrontEndEventActions, вот пример:

Код: [no]SetOptions[$FrontEnd,
FrontEndEventActions -> {{"MenuCommand", "Save"} :> Print["HEY"],
PassEventsDown -> True}];[/no]
Автор: Andrew10
Дата сообщения: 23.11.2014 19:34
popkov


Цитата:
Похоже, можно полностью переопределить действие пункта меню "Save" через FrontEndEventActions, вот пример:



Спасибо!
Автор: tim9867
Дата сообщения: 10.12.2014 18:49
Установил и активировал V 10.0.1
Система на Win7-32
Нужно для начала отрисовать график некой функции.
Запускаю блокнот.
Пишу Plot (бла бла бла в соответствии с синтаксисом из примеров)
Нажимаю Enter на цифровой клавиатуре.
Отрисовываются оси в заданном диапазоне. И все. Никокого графика.
У меня уже мозг закипает
Ну что я не так делаю. Где что изменить/поправить нужно?

Прошу не пинать, ежели таким вопросом уже не раз задавались.
Автор: Cossack
Дата сообщения: 10.12.2014 19:18
tim9867
Цитата:
Где что изменить/поправить нужно?
Так Вы скопируйте сюда, что там за Plot
Автор: tim9867
Дата сообщения: 10.12.2014 19:59
Вот ведь "эффект присутствия"
Сейчас все получилось.
По-моему я до этого название функции с маленькой буквы писал.

Подскажите пожалуйста как можно
"построить графическое решение уравнения двух переменных"
Например такого:
x^2+(y-x^(2/3))^2=1

Спасибо.

Страницы: 12345678910111213141516171819202122232425262728293031323334

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


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