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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_B
Даже не знаю что сказать.
Окружность в декартовых координатах двухзначная, и это очевидно даже школьникам.
Значит, получается для записи окружности не хватают комплексных чисел.
Ну что, еще кватернионы надо?
 
burewisnyk
Например что то такое:

Код:
 
Graphics[{
  Inset[
   Plot[{-(x - 0.5)^2 + 1}, {x, 0, 1}, PlotRange -> {0, 1}],
   {-1, 0}, Center, {1, 1}],
  Inset[
   Plot[{-(x - 6)^2 + 1}, {x, 5, 7}, PlotRange -> {0, 1},
    Axes -> {True, False}],
   {0, 0}, Center, {1, 1}],
  Inset[
   Plot[{-(x - 30)^2 + 100}, {x, 20, 40}, PlotRange -> {0, 100},
    AxesOrigin -> {40, 0}],
   {1, 0}, Center, {1, 1}]
  },
 PlotRange -> 1.5, ImageSize -> 600]
 

 
Но требуется многое чего еще.
И я все же не уверен что получится график печатного качества.
Строго говоря, визуализация Математики находится на уровне электронных черновиков.
Под печатных графиков она мало подходит
 
Добавлено:
Если хотите что то хорошее под печати, посмотрите в сторону пакета PGFPlots для LaTeX.
Example: Function visualization
Example: Plotting several 2d functions in a 3d graph
Example: Group plot
Example: Convergence Plot
Example: Fourier transform
Example: Weierstrass function

Всего записей: 2027 | Зарегистр. 14-03-2007 | Отправлено: 14:06 26-10-2015
Alex_B



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

Цитата:
Окружность в декартовых координатах

Мы говорили про "неоднозначные" функции, а не про окружности.
 

Цитата:
Значит, получается для записи окружности не хватают комплексных чисел.

Для задания окружности хватит одних действительных чисел.

Всего записей: 1088 | Зарегистр. 10-01-2002 | Отправлено: 14:53 26-10-2015
karl_karlsson



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

Цитата:
Мы говорили про "неоднозначные" функции, а не про окружности.

И привел пример окружности, которая в декартовых координатах задается двухзначной функции, а вот в полярные (это ее собственные координаты между прочим) - однозначной.
Что означает,  многозначность - однозначность не есть инвариант.

Всего записей: 2027 | Зарегистр. 14-03-2007 | Отправлено: 19:26 26-10-2015
Alex_B



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

Цитата:
И привел пример окружности, которая в декартовых координатах задается двухзначной функции

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

Всего записей: 1088 | Зарегистр. 10-01-2002 | Отправлено: 21:19 26-10-2015
BookWarrior



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

Цитата:
По-моему, в метематике есть глюк и я его недавно обнаружил.  
Проверьте:  
1.) Запустите математику  
2.) Вставьте следующие строки каждая в свою ячейку:  
a^(-s)/2+a^(1-s)/(s-1)+2*Integrate[(a^2+y^2)^(-s/2)*Sin[s*ArcTan[y/a]]/(Exp[2Pi*y]-1),{y,0,Infinity}]/.{s->-2,a->6}  
 
((2^(-1-k)*(-((2-a+b)^k*(-1+a-b+k))+(a-b)^k*(1-a+b+k)))/(1+k)+Integrate[(-1+Coth[Pi*y])*(-(((a-b)^2/4+y^2)^(k/2)*Sin[k*ArcTan[(2*y)/(a-b)]])+((2-a+b)^2/4+y^2)^(k/2)*Sin[k*ArcTan[(2*y)/(2-a+b)]]),{y,0,Infinity}])/.{a->2,b->5,k->2}  
 
a^(-s)/2+a^(1-s)/(s-1)+2*Integrate[(a^2+y^2)^(-s/2)*Sin[s*ArcTan[y/a]]/(Exp[2Pi*y]-1),{y,0,Infinity}]/.{s->-2,a->6}  
 
3.) Выполните их по очереди  
У меня получилось, что первая дает -55, вторая 13/3, третья -54. Но ведь первая и третья одинаковы.
первая дала -55.
средняя не хочет вычисляться - тормознул.  
последняя дала -55.
 
Версия 7.0
 
Причин наблюдения разных результатов может быть несколько, но без ковыряния твоего компа это сложно понять. Забей, в М. случаются порой вещи. Рецепт один - наблюдай и кодируй так, чтобы несколько повторов начисто давало одинаковый результат. Очень частой проблемой волшебных результатов, например, являются пробелы: М. различает что-то 3 или 4 штуки разных пробелов (это у неё они пробелы, причём почти невидимые), например в результате копирования кода откуда-нибудь, и они дают жестокие артефакты.

Всего записей: 1340 | Зарегистр. 15-08-2004 | Отправлено: 15:35 10-12-2015
RuPurple



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста, разобраться с простенькой задачкой. Нужно подобрать значения параметров экспоненциальной функции.  
Ввожу в Математику следующие данные:

Код:
tdep = {{250, 20} , {273, 10} , {293, 5} , {315, 2.5} , {333, 1}}
ListPlot[tdep]
FindFit[tdep, b Exp[-k x], {b, k}, x]

В результате получаю совершенно неправильный ответ:

Код:
Out[3]= {b -> 1., k -> 1.}

Подскажите, пожалуйста, что здесь не так?
Для справки: Wolfram Alpha находит правильную функцию в виде 130251./E^(0.0347086 x)

Всего записей: 724 | Зарегистр. 21-02-2010 | Отправлено: 19:00 25-01-2016 | Исправлено: RuPurple, 19:04 25-01-2016
vikkiv



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RuPurple
у тебя f(20)=250 или f(250)=20 ?
если первый вариант
Код:
data={{20,250},{10,273},{5,293},{2.5,315},{1,333}};model=a*Exp[b*x];
fit=ReplaceAll[model,FindFit[data,model,{a,b},x]];
Show[Plot[fit,{x,1,20}],ListPlot[data]]
может немного подойти для регрессии (только формат ввода будет немного другой местами поменяй типа {х1,f(x1)},{x2,f(x2)}..., то для второго функция не очень годится, она в основном около оси нормально работает а дальше как и у большинства степенных функций - практическое применение очень сомнительно

Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 21:56 25-01-2016 | Исправлено: vikkiv, 22:17 25-01-2016
RuPurple



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vikkiv
У меня второй вариант, т.е. f(250)=20. И подходящую функцию я нашел с помощью Wolfram Alpha.
Но меня интересует, почему Mathematica дает неправильный результат, т.е. неправильно подбирает коэффициенты. Что это - ошибка в программе или я что-то не так ввожу?
И еще, я сейчас заметил, что немного ошибся со значениями. Правильно должно быть так: {253, 20} , {273, 10} , {293, 5} , {313, 2.5} , {333, 1.2}. Тогда функция 130251./E^(0.0347086 x) , которую дает Wolfram Alpha, точно ложится на точки. Но это не суть важно, так как Mathematica все равно дает неправильный результат и в том и в другом случае. Вот хотел бы узнать, почему?

Всего записей: 724 | Зарегистр. 21-02-2010 | Отправлено: 22:21 25-01-2016 | Исправлено: RuPurple, 22:29 25-01-2016
vikkiv



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RuPurple
У меня WolframAlpha на этот метод тоже выдаёт сомнительные результаты
может ты что-то другое использовал чтобы коэффициенты получить? у каждой функции своя область применения и ограничения.
 
 
...кстати с точки зрения статистического анализа подходящая функция выбирается как минимум через R^2 , края на характер отклонений ещё стоит проверить, часто бывает что такие функции по ним начинают давать всё худшие результаты.. (не говоря уже о знании процесса за данными, некоторые вообще полиномы 3+ на свою голову выбирают)

Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 22:40 25-01-2016 | Исправлено: vikkiv, 22:59 25-01-2016
karl_karlsson



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RuPurple
Сразу видно на глаз, что b ~ ln(2)/20 ~ 3,47*10^-2
 
Похоже a ~ 10^5, (253/20~12, 20*2^12).
 
Ну не знаю, пока поздно вечером - это либо алгоритмы Mathematica слишком ограничены, либо сюда имеется баг, какие присутствуют не один и не два.

Всего записей: 2027 | Зарегистр. 14-03-2007 | Отправлено: 01:05 26-01-2016
RuPurple



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vikkiv
В WolframAlpha действительно использовался другой метод. Но в Mathematica, кажется, такой метод отсутствует.
 
karl_karlsson
Похоже все-таки какой-то баг. В справке Mathematica по функции FindFit имеется очень похожий пример с подбором коэффициентов для a*Exp[-b*x]. И он отрабатывается на ура. Кроме того, несколько дней назад я решил аналогичную задачку с помощью FindFit. Правда, в том случае точек было значительно больше.

Всего записей: 724 | Зарегистр. 21-02-2010 | Отправлено: 14:21 26-01-2016
karl_karlsson



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RuPurple
Похоже алгоритмы:

Код:
FindFit[{{253, 20}, {273, 10}, {293, 5}, {313, 2.5}, {333, 1.25}},  
 a*Exp[b*x], {a, b}, x, Method -> NMinimize]


Код:
{a -> 128643., b -> -0.0346603}

Должно быть:

Код:
a = N[20*Exp[253*Log[2]/20]] = 128546
b = N[Log[2]/20] = 0.0346574

Ну добавляем еще "MaxIterations -> 1000"

Код:
FindFit[{{253, 20}, {273, 10}, {293, 5}, {313, 2.5}, {333, 1.25}},  
 a*Exp[b*x], {a, b}, x, Method -> NMinimize, MaxIterations -> 1000]


Код:
{a -> 128549., b -> -0.0346574}

И получается уже несколько лучше.

Всего записей: 2027 | Зарегистр. 14-03-2007 | Отправлено: 16:47 26-01-2016 | Исправлено: karl_karlsson, 16:48 26-01-2016
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
RuPurple
Некорректный фитинг экспоненты - очень стандартные "грабли", на которые наступают начинающие пользователи Mathematica год за годом. На сайтах, посвященных Mathematica, темы с обсуждением этой проблемы появляются регулярно. Например, вот сравнительно недавняя тема, где описана именно твоя проблема, причем практически твоими же словами, и дается несколько рецептов ее решения:
http://mathematica.stackexchange.com/q/87645
 
Насчет алгоритма, используемого Wolfram|Alpha, есть комментарий одного из разработчиков:
http://mathematica.stackexchange.com/a/54638
Если вкратце, то они планируют добавить этот алгоритм в будущем.

Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 18:00 26-01-2016
karl_karlsson



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
popkov
Да, не в этом состоится проблема, я уже проверял.

Код:
FindFit[{{0, 20}, {20, 10}, {40, 5}, {60, 2.5}, {80, 1.25}},  
 a*Exp[b*x], {a, b}, x]


Код:
{a -> 0., b -> 1.}


Код:
FindFit[{{0, 20}, {20, 10}, {40, 5}, {60, 2.5}, {80, 1.25}},  
 a*Exp[b*x], {a, b}, x, Method -> NMinimize, MaxIterations -> 1000]


Код:
{a -> 20., b -> -0.0346574}

И вот только так находит:

Код:
FindFit[{{0, 20}, {2, 10}, {4, 5}, {6, 2.5}, {8, 1.25}},  
 a*Exp[b*x], {a, b}, x]


Код:
{a -> 20., b -> -0.346574}

На рутракере обсуждали, но там уже всю математику удалили. Был еще человек у которого были калькуляторы, ну и студенты еще. Один говорил - вот у нас в Америке профессор сказал, что калькуляторы ни за чем не надо. Спросил кто он, отдал почту. И вот спрашивает - а зачем тебе калькулятор, если есть всякие приложения на порядки мощнее, типа Mathematica, Maple, Matlab?
 
Вот, что я отвечаю всегда - потому что число ошибок внутри этих приложении превосходит число функции внутри самых продвинутых калькуляторов.
 
Дабы не быть голословным, вот например, что выдает каждый графический калькулятор Casio:  
http://keisan.casio.com/exec/system/14059930754231
Результаты CASIO
 
Если будет времени, то сделаю и на виртуальных TI, HP и Sharp. Уверен, что то же самое будет, ибо не раз делал, ну уже сколько лет. И такие смешные результаты и требования, как у математики никогда не было. Ну и совсем еще - первые такие калькуляторы вышли еще до математики.  
 
Так что сюда мы имеем такую отсталость, что уже даже не смешно. Было смешно 20 лет назад, когда TI-92 вычислял интегралы лучше Mathamatica и Maple, но сейчас уже слишком.

Всего записей: 2027 | Зарегистр. 14-03-2007 | Отправлено: 18:59 26-01-2016 | Исправлено: karl_karlsson, 19:00 26-01-2016
RuPurple



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
karl_karlsson, popkov
До сегодняшнего дня я считал Mathematica весьма универсальным и точным инструментом. Теперь будем иметь ввиду, что это не совсем так.  
Благодарю вас и vikkiv за помощь в решении моей проблемы.

Всего записей: 724 | Зарегистр. 21-02-2010 | Отправлено: 21:06 26-01-2016
revutow

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

Всего записей: 202 | Зарегистр. 25-11-2015 | Отправлено: 17:05 27-01-2016
vinitucupe



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

Всего записей: 279 | Зарегистр. 25-11-2015 | Отправлено: 17:22 27-01-2016
revutow

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

Всего записей: 202 | Зарегистр. 25-11-2015 | Отправлено: 17:27 27-01-2016
Double M Doc



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При установке Mathematica 10.3.1 опционально ставятся Wolfram Extras - т.е. плагин для браузера (cdf-плеер) и плагин для службы индексирования Windows (позволяет через поиск Windows искать текстовое содержимое в блокнотах Mathematica).
 
Проверено - плагин установлен (C:\Program Files\Common Files\Wolfram Research\Browser\10.3.1.5448469)
 
Индексер тоже установлен (C:\Program Files\Common Files\Wolfram Research\Search\10.3.1.5448469)
 
Плеер в браузере работает (проверить проще всего, перейдя на C:\Program Files\Common Files\Wolfram Research\Search\10.3.1.5448469), индексатор тоже работает (создал блокноты с одинаковыми кусками текста, встроенный поиск Windows их видит).
 
При этом, тем не менее, в настройках Mathematica отображается вот что (не знаю, как в более ранних версиях):
 
   
 
Интересно, это баг (не влияющий на функционал), или всё же что-то неверно инсталлировано? (Win8.1x64)

Всего записей: 509 | Зарегистр. 31-10-2010 | Отправлено: 20:30 03-02-2016 | Исправлено: Double M Doc, 04:18 04-02-2016
grinchukav

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
popkov
karl_karlsson
Этот баг помню еще с третьей версии. Причем, если знак у экспоненты поставить другой:
FindFit[{{0, 20}, {20, 10}, {40, 5}, {60, 2.5}, {80, 1.25}},  
 a*Exp[-b*x], {a, b}, x]
 
(т.е. - b*x), то все становится нормально. В общем, если знаки расставить, то при фитинге все получается (не только в этом примере). В любом случае, математика математикой, а мозги включать приходится

Всего записей: 67 | Зарегистр. 28-02-2008 | Отправлено: 22:33 03-02-2016 | Исправлено: grinchukav, 22:34 03-02-2016
Открыть новую тему     Написать ответ в эту тему

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