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

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

Автор: BookWarrior
Дата сообщения: 06.05.2012 14:19
Andrew10

Цитата:
Похоже, что Show здесь вообще не годится
очевидно да, если прямо хочется, чтобы Математика сама отрисовывала. В ней двойных осей принципиально нет. Есть график, на котором есть один набор осей, всё. Надо два набора - рисуйте два графика. Show соединяет различные функции на одном наборе осей, "показывает" внутри них, универсальным образом. Просто сама сборка из двух осей - это экономия места, это не есть функциональная (в мат смысле) необходимость, поэтому по идее её и не должно быть. Но почему вы не хотите например в Origin или где ещё, соединить выхлоп Математики? Где оси можно содединять и параллелить. Не запрещаю себе думать, что и для Математики кто-нибудь мог написать пакет для рисования всякой дряни вокруг стандартного рабора осей: двойные, тройные и т.п.

Впрочем, если вам из крови нос нужно засунуть графики, возьмите Log от данных и сделайте метки логом. Засунуть-то на оси можно, что угодно. На осях степени десятки будут, например. Масштаб вы любой можете этим методом задать (в смысле как у них, с подменой Ticks), просто функцию свою отмасштабируйте сообразно.

А какой пример вы пробовали? Там их три вообще-то, очень разных. Один из них даёт вроде что вам надо, как раз пакет чей-то


А кодом даны такие примеры:

Код: Plot[{Sin[x], 3*Sin[x]}, {x, 0, 2*Pi},
PlotStyle -> {RGBColor[1, 0, 0], RGBColor[0, 0, 1]}, Frame -> True,
FrameTicks -> {Automatic, {{-3, "-3 M"}, {-2, "-2 M"}, {-1,
"-1 M"}, {1, "1 M"}, {2, "2 M"}, {3, "3 M"}},
Automatic, {{-3, "-30 T"}, {-20, "-2 T"}, {-1, "-10 T"}, {1,
"10 T"}, {2, "20 T"}, {3, "30 T"}}}]
Автор: Andrew10
Дата сообщения: 06.05.2012 22:29
r_green
BookWarrior
Спасибо за участие в обсуждении.
Если такие сложности с двумя осями, то я по старинке нарисую gnuplot-ом. А может, конечно, и воспользуюсь указанными BookWarrior примерами.
Просто последнее время я переживаю "ренессанс" с Математикой и казалось, что она может все. Ну, или почти все. К счастью, в очередной раз выясняется, что полного совершенства не бывает .
Что касается графиков с двойными осями, то они иной раз бывают очень полезны, в частности, в том случае, который важен для меня - представление комплексной функции. Во многих журналах есть ограничение на количество рисунков, причем считаются разными и рис. а), б) и т.д. под одним номером.
В этом случае график с двумя осями и полезная и необходимая вещь.




Автор: BookWarrior
Дата сообщения: 07.05.2012 08:36
Andrew10

Цитата:
казалось, что она может все
оооо, друг мой! Я как упрямец в плане изучения вещей, которые мне хочется изучить, могу вам сказать в самом серьёзном смысле: никогда ни при каких условиях и рекомендациях лучших собаководов, не ипользуйте Математику в качестве среды для анализа данных. Т.е. изображения, сравнитель большие данные для fitting и т.п. НИ_КО_ГДА, слышите?!

Я собаку на этом съел. Никогда не используйте для интерфейсов, вроде асинхронных GUI, не смотря на то, что в Математику встроили Dynamic штучки и кажется, что можно всё повесить на слайдеры и сделать прогу. Нет! Объекты синхронизации при сложности выше нулевой начнут давать дедлоки и вы ничем с этим не справитесь.

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

Помните, что Математика использует 10 физических байт на 1 реальный байт ваших данных. При таком раскладе вы никогда не сможете обработать ничего путного. Только баловство.

Для чего тогда она нужна? А вот максимум для того, что мы тут делаем - алгебраические манипуляции. Я для себя сформулировал её смысл так: М. - это электронный справочник и нормализатор функций. Она приводит функции к нормализованному виду и находит соотв. формулу для взятия интеграла, например. Всё, больше от неё ничего не добиться. Конструировать в ней решения можно, но каждый раз это будет боль в жопе. Её язык таков, что она слабо управляет кодом, в смысле например вам надо, чтобы на каком-то этапе она сначала сделала аналитику и взяла X как переменную, а потом уже прошлась по числовым её значениям X = 1,2,3,... - вы убьётесь выставлять всякие Hold / Release. Отладке мозгом это не подлежит и каждый раз получается что-то ad hoc.

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

Другими словами язык её плохо продуман до ужаса. Но пока конкуренты тоже спят, и замены нет.

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


Цитата:
Во многих журналах есть ограничение на количество рисунков, причем считаются разными и рис. а), б) и т.д. под одним номером.
В этом случае график с двумя осями и полезная и необходимая вещь
ну а я вам о чём говорю? двойные оси - это способ компактификации, а не мат. необходимость. Именно так и возникают многие вещи в науке, чтобы опубликовать. Множественные оси - одна из таких штук. Это я к тому, что не зацикливайтесь на одном инструменте - это неверно. Математика может многое, но где-то она вообще бесполезна. Нормальные люди, даже физики-теоретики, используют минимум две вещи: МАТЛАБ и Математику. Минимум! И кучу ad hoc солверов под конкретные системы.
Автор: r_green
Дата сообщения: 07.05.2012 15:08
BookWarrior

Цитата:
Её язык таков, что она слабо управляет кодом, в смысле например вам надо, чтобы на каком-то этапе она сначала сделала аналитику и взяла X как переменную, а потом уже прошлась по числовым её значениям X = 1,2,3,... - вы убьётесь выставлять всякие Hold / Release.

Можно конкретный пример?


Автор: BookWarrior
Дата сообщения: 07.05.2012 15:54
r_green
можно, но лень. Если пробовали, обязательно сталкивались с невнятным code evaluation последовательностью.

Ну хорошо, только я уже не смогу вдумчиво комментировать, у меня файл датирован годом назад, я бросил и переделал в числовом виде. Кратко: там собирается аналитическое решение закона Био-Савара для 3Д-распределения магнитного поля для трёх соединённых проводов и протекающего по ним тока, и ещё одного направленного по одной из осей внешнего магнитного поля. Сейчас не помню точно, возможно реализация с ошибкой, может нет. Я потом решил задачу в запаздывающих потенциалах, потому что мне мало было простого приближения в рамках указанного закона, по ряду причин. Но муки, которые я испытал, заставляя математику считать (запустите, посмотрите, насколько она еле-еле ворочается от простой задачи) "послойно" именно так, как мне надо, т.е. где-то сначала дифференцировать и интегрировать, а где-то уже подставлять цифры (где нумеризируются результаты интеграла Био-Савара). Т.е. моя цель была не просто собрать солвер, а собрать солвер аналитического решения, чтобы в последствии можно было добавлять провода и поля, а оно пересобирало результирующие формулы распределения поля. Оно их собирает для этой конфигурации, но сколько это считается и как это отлаживается - это просто пестня про танкистов унд фашистов.

В общем, вот вам: http://rghost.ru/37957985

PS
мне послышалось, или вы сказали, что Математика - это прекрасный пакет и просто люди не понимают его сути?
Автор: r_green
Дата сообщения: 07.05.2012 21:13
BookWarrior

Цитата:
В общем, вот вам: http://rghost.ru/37957985

Да уж, непростой примерчик.
Попозже может попробую вникнуть...


Цитата:
мне послышалось, или вы сказали, что Математика - это прекрасный пакет и просто люди не понимают его сути?

Прекрасным в целом не назову, но мощь и продуманость базовых концепций её языка сильно уважаю.
Когда я впервые столкнулся с Математикой, то просто балдел от восхищения .
Сейчас восхищение поистрепалось, но всё же...



Автор: Andrew10
Дата сообщения: 10.05.2012 12:16
BookWarrior

Цитата:
оооо, друг мой! Я как упрямец в плане изучения вещей, которые мне хочется изучить, могу вам сказать в самом серьёзном смысле: никогда ни при каких условиях и рекомендациях лучших собаководов, не ипользуйте Математику в качестве среды для анализа данных. Т.е. изображения, сравнитель большие данные для fitting и т.п. НИ_КО_ГДА, слышите?!

Я собаку на этом съел. Никогда не используйте для интерфейсов, вроде асинхронных GUI, не смотря на то, что в Математику встроили Dynamic штучки и кажется, что можно всё повесить на слайдеры и сделать прогу. Нет! Объекты
синхронизации при сложности выше нулевой начнут давать дедлоки и вы ничем с этим не справитесь.

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

Помните, что Математика использует 10 физических байт на 1 реальный байт ваших данных. При таком раскладе вы никогда не сможете обработать ничего путного. Только баловство.


Спасибо, конечно, за указ . В общем, я никогда и не собирался использовать Математику ни для чего из того, что Вы написали. В моих процитированных словах была определенная доля иронии, впрочем, как видно, не слишком удачно выраженной. Тем не менее сам разговор мне кажется полезным.
Как и для чего я использую Математику:
1. Как средство проверки правильности зубодробительных формул, которые периодически приходится выводить. Раньше всегда использовал для проверки метод "многократного переписывания". С появлением Математики моя жизнь сильно в этом смысле облегчилась
2. Как среду для разработки прототипа программы, реализующей новый алгоритм для решения какой-нибудь физической задачи. Наиболее часто в качестве таковой выступает какая-нибудь одномерная краевая задача о распространении волн. Задача обычно нелинейная или линейная но с противными свойствами среды. Когда все отлажено и работает в Математике, переписываю алгоритм на Фортране и расчеты проводятся уже на Фортране. Мой опыт показывает, что общее время на разработку при этом значительной снижается.
3. Как средство графического отображения данных. Т.е. построение графиков для отчетов, статей, презентаций. Раньше использовал для этого Grapher, потом gnuplot, последнее время стараюсь использовать Математику.
4. Как средство быстро решить сравнительно простую стандартную вычислительную задачу и посмотреть результат в виде графика, таблицы и т.д. Часто бывает необходимо при работе со студентами и аспирантами.


Цитата:
двойные оси - это способ компактификации, а не мат. необходимость.

Ясное дело, что не мат.необходимость. Зато необходимость в моей повседневной деятельности, а на мой взгляд, Математика (как и другие подобные программы) для того и нужна, чтобы помогать в разных подобных штуках. Все-таки странно, что при такой мощной графической системе в ней не реализованы вещи, необходимость в которых появляется уже на первоначальной стадии использования.



Цитата:
Нормальные люди, даже физики-теоретики, используют минимум две вещи: МАТЛАБ и Математику. Минимум! И кучу ad hoc солверов под конкретные системы.

Хотелось бы на _достойном_ уровне использовать все это, но, честно говоря, сил на это не хватает. Какое-то время держал на компе и Математику и Matlab и старался использовать их на равных началах. но лет через 5 обнаружил, что использую практически только Mathematic-у. Причины этого чисто случайные - на факультете по программе для студентов кто-то вписал преподавание именно Математики, так что пришлось больше изучать ее. Иногда, но крайне редко, все-таки использую и Matlab.
Автор: BookWarrior
Дата сообщения: 10.05.2012 13:58
тем временем у меня очередной затык на жниве М. Даже пожалуй заржавевшее непонимание определённого момента в Математике. Есть надежда, что кто-нибудь пробовал и натыкался, соотв. может я зря копья ломаю.

Формулы большие, приводить пока не буду. Проблема заключается в том, что при отрисовке решений, подобных обсуждённым (много корней по сути - думаю где-то с этим проблема) и сравнении с какой-нибудь другой формулой, скажем, полученной другой последовательностью действий, но доказанно идентичной в мат. смысле (проверено почленно посредством "==="), возникают "трещины" в графике. Но это не такая большая беда, как то, что не только трещины, но и корни меняются местами. Пример картинкос:


Вкратце, мну волнует: штозанафег?

Это - постоянно встречается, когда решения полиномиальных уравнений (корни) отрисовываешь. Я знаю, что там начинается числовой шум, который имеет резкий пик в 5 порядков на фоне обычного 10^-15 рядом с 14 G. В той точке мнимая часть вырастает от нуля до 10^-6, здесь я её срезаю, а график Plot чтобы не давал белых дыр (пропусков точек, где комплексные числа возникают), увеличиваю шаг интегратора через MaxRecursion->8. Второй график - другая формула, у неё ничего не надо делать, само всё нормально происходит.

Пробитая версия получена путём решения a0 + a1 x + a2 x^2 + a3 x^3 + a4 x^4 == 0 через Solve, потом компактификацией формул корней, а затем подстановкой параметров и разворотом формул обратно в чудовищные формы. Это надо потому, что мне нужен компактный вариант как выхлоп модели, а разворот делается для проверки, разумеется.

Формула с человеческой отрисовкой сгенерена Мат-кой по матричной форме модели, т.е. в матричной постановке. Там она тоже бывает дырявое вылезает (знаю, потому что раньше только так решал и уже видел дырки в прошлом), но пример сейчас не могу найти. Сейчас этот вариант прошёл как надо, а другой покоцался.

Мну беспокоит, доколе & почему со мной всё это происходит? (с)

Идея такова: это просто ползающая ошибка оцифровки из-за разной "конкретной" алгебраической формы формулы. Т.е. та же математика, но записана не 2*a+b/2, а скажем 2*(a+b/4). Начинает вычислять и в каком-то диапазоне величин совсем хереет.

Ещё одно в дополнение к картине: у меня есть численный пример, без аналитики, в котором корень начинает мелко осциллировать между + и - значением (т.е. корня два, +А и -А, например, между ними начинает прыгать от точки к точке). Получается, что весь график целиком закрашивается! Приходится делать ListPlot, чтобы убрать соединения, тогда две независимые линии видно прекрасно. Уж это - точно не может ни от какого полинома конечного порядка происходить, это точно численная проблема. Поэтому, в частности, виню оцифровку, но не знаю, может кто умеет это побеждать, а, победители?! Откликнитесь =)

Спасите.


Andrew10
это вот кстати по поводу того, что я там писал (что уже теперь точно ясно, вас тоже касается): формулы надо проверять на всякие вот такие штуки. Они могут быть мат. эквивалентны, но при расчёте всё-таки что-то такое происходит. В одних решениях всё идёт как надо, а в других (!возможно!) ошибки оцифровки аналитических решений давят в направлении кювета.
Автор: BookWarrior
Дата сообщения: 13.05.2012 14:01
неужели никто с такой проблемой не сталкивался??
Автор: r_green
Дата сообщения: 13.05.2012 20:23
BookWarrior
Могу поисследовать проблему, если предоставите конкретный код для воспроизведения.
Обозримого объёма.
Автор: BookWarrior
Дата сообщения: 15.05.2012 14:03
сори, что пропал: как будет дырка, повырезаю, чтобы стало компактно... с ходу не получилось другой пример придумать, чтобы это повторилось...
Автор: Dimock
Дата сообщения: 21.05.2012 11:35
Добрый день!


Знатоки, подскажите. Нужно решить такую задачу. Нужно найти все комбинации чисел из заданного диапазона, действия над которыми – сложение, вычитание, умножение, деление – дают конкретное число. Желательно, чтобы диапазон чисел, а также число, которое должно получиться в результате, и действия над числами можно было ввести в программу до начала вычислений. Т.е. нужно чтобы программа понимала эти условия.
Например, 1 + 3 + 7 = 11, 5 + 7 – 2 = 11.
Какой программе это под силу? Большое спасибо.
Автор: BookWarrior
Дата сообщения: 21.05.2012 14:44

Цитата:
Желательно, чтобы диапазон чисел, а также число, которое должно получиться в результате, и действия над числами можно было ввести в программу до начала вычислений
вам наверное нужна функция Permutations. Перестановками (permutations) можно сгенерировать все комбинации ваших аргументов, для которых сами можете задать диапазон. Полученные переставленные списки аргументов можно подвергнуть 4-ём алгебраическим операциям (ф-ции Distribute, Map, Thread и подобные, например) и получить списки числел-ответов (которые будут сравниваться с 11). Где совпадёт с нужным вам (11) - это и будет нужная перестановка. Список всех подходящих перестановок и будет вашим ответом.
Автор: Dimock
Дата сообщения: 21.05.2012 15:44
BookWarrior, спасибо Вам огромное, а также r_green иvengr, которые ответили мне через ПМ.

Добавлено:
Огромное спасибо за ответ.

Подскажите, правильно ли я делаю. В данный момент я скачиваю пакет Mathematica 8.0.4
отсюда – http://narod.ru/disk/30168194001/Mathematica_8.0.4_WIN.exe.html (ссылку взял отсюда - http://forum.ru-board.com/topic.cgi?forum=35&topic=1174&start=0&limit=1&m=1#1). Как его активировать – как здесь – http://forum.ru-board.com/topic.cgi?forum=35&topic=1174&start=0&limit=1&m=16#1 или здесь - http://forum.ru-board.com/topic.cgi?forum=35&topic=1174&start=0&limit=1&m=17#1?

Вы не знаете ссылку на пакет, которую можно добавить в Флешгет? Боюсь, что Народ может объявить мне тайм-аут. Ведь средняя скорость скачивания программы в данный момент – 300 кб/сек, а нужно качать 900 Гб. Вы не могли бы залить файл – инсталлятор вместе с кейгеном или лицензиями (не знаю, что здесь лучше) на ifolder? Этот хостинг дает ссылку, которую можно вставить в Флешгет. А ссылку на ifolder потом можно будет добавить в шапку.

Спасибо. Надеюсь на понимание.
Автор: r_green
Дата сообщения: 21.05.2012 17:20
Dimock
Начал закачку на ifolder.
Часа через полтора будет там.
Автор: Dimock
Дата сообщения: 21.05.2012 17:22
r_green, спасибо! Тем самым, ты многим облегчишь скачку.
Автор: r_green
Дата сообщения: 21.05.2012 18:22
Dimock
Готово.
Автор: TeXpert
Дата сообщения: 22.05.2012 08:53
Dimock
Цитата:
Подскажите, правильно ли я делаю
Не совсем правильно
Цитата:
Вы не знаете ссылку на пакет, которую можно добавить в Флешгет
Зачем?
Цитата:
Боюсь, что Народ может объявить мне тайм-аут
Такого я что-то не припомню за долгое время общения c "народом"
Цитата:
Ведь средняя скорость скачивания программы в данный момент – 300 кб/сек
У меня максимум --- 240, часто около 60
Цитата:
...а нужно качать 900 Гб
Я скачиваю оттуда цельными кусками файлы под 5 GB

Качаю wget'ом. Многие пользуют его порт под Windows (я под Linux)
Автор: BookWarrior
Дата сообщения: 22.05.2012 08:58
Dimock
зачем вам вообще что-то качать для одной маленькой задачи? Может получится посчитать олнайн? Не уверен, но перестановки сделать удалось

Код: http://www.wolframalpha.com/input/?i=Permutations[{a,b,c,d}]
Автор: Dimock
Дата сообщения: 22.05.2012 11:37
BookWarrior


Цитата:
Может получится посчитать олнайн?


Ну сделаю я там перестановки, а дальше? А как производить над ними действия сложения и вычитания?
Автор: BookWarrior
Дата сообщения: 22.05.2012 14:02
Dimock

Цитата:
перестановки, а дальше?
умножение - Times, сложение - Plus, вычитание - Subtract, деление - Divide. Они работают со списками вроде результирующих перестановок. Например для сложения и умножения полные списки полученные из всех возможных перестановок будут:
Plus @@@ Permutations[{a, b, c}]
Times @@@ Permutations[{a, b, c}]

эти команды скармливают списки перестановленных переменных по одному функциям сложения и умножения, так, что {a,b,c} становится a+b+c.

Оставшиеся два некоммутативны и с ходу не соображу, как их запилить. Деление нужно как-то итеративно делать, а вычитание попарно. Это надо возиться дальше со полученным списком перестановок. Список функций в помощь я привёл, может быть к ним ещё можно добавить Fold, Nest и подобные им.

Как справитесь с этими двумя операциями, остальное - просто проход по ним всем (четырём операциям) циклом и сравнение с 11.

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

Добавлено:
у меня по ходу вопрос (не связанный с предыдущими обсуждениями): вот есть полином 3-го порядка, как его факторизовать, процедура?

q + 3*x - q*x^2 - x^3

Математика не раскладывает, т.е. целочисленная факторизация, видимо, невозможна. Но люди говорят, что она может быть нецелочисленная и что факторизовать можно что угодно. Т.е. надо искать цифры в (a - x)(b - x) и пр., которые не будут целыми.

Кто-нибудь делал факторизацию?
Автор: r_green
Дата сообщения: 22.05.2012 18:23
Dimock
Насколько я могу судить, при прямом переборе в общем случае каждый проверяемый вариант будет комбинацией:
- вариантов структуры выражения (т.е. синтаксического дерева).
- перестановок чисел из выборки
- перестановок операций.
Можно уменьшить количество вариантов, учитывая коммутативность сложения и умножения.

В общем прямой перебор будут очень сильные ограничения на макс. размер диапазона - с его увеличением количество вариантов растёт в астрономической прогрессии

BookWarrior

Цитата:
у меня по ходу вопрос (не связанный с предыдущими обсуждениями): вот есть полином 3-го порядка, как его факторизовать, процедура?

q + 3*x - q*x^2 - x^3


Можно вот так:

Код:
factor[p_, v_] :=
Exp@Simplify@ToRadicals@RootSum[v \[Function] p, Log[v - #] &]



In:= factor[q + 3*x - q*x^2 - x^3, x]
Out= 1/108 (q + (-9 - q^2)/(-q^3 + 3 Sqrt[3] Sqrt[-27 - 9 q^2 - q^4])^(
1/3) - (-q^3 + 3 Sqrt[3] Sqrt[-27 - 9 q^2 - q^4])^(1/3) +
3 x) (2 q + ((1 + I Sqrt[3]) (9 + q^2))/(-q^3 +
3 Sqrt[3] Sqrt[-27 - 9 q^2 - q^4])^(
1/3) + (1 - I Sqrt[3]) (-q^3 + 3 Sqrt[3] Sqrt[-27 - 9 q^2 - q^4])^(
1/3) + 6 x) (2 q + ((1 - I Sqrt[3]) (9 + q^2))/(-q^3 +
3 Sqrt[3] Sqrt[-27 - 9 q^2 - q^4])^(
1/3) + (1 + I Sqrt[3]) (-q^3 + 3 Sqrt[3] Sqrt[-27 - 9 q^2 - q^4])^(
1/3) + 6 x)

Автор: BookWarrior
Дата сообщения: 22.05.2012 18:38
r_green

Цитата:
извращённо
сейчас не могу сообразить: это эквивалентно сначала решению уравнения типа Solve[...], а затем вставкой корней в факторизованный таким образом ответ?

Просто это напоминает решение солвом, и имеет те же ограничения, потому что упирается в извлечение радикалов RootSum, которое не может их извлечь из полинома 5-го порядка, а именно его я и пытаюсь в результате упростить =) Если это получение таким способом, т.е. как в общем виде решения для ур-ний вида x^n = a:

то это не годится. Или она всё-таки по-другому это делает?

Вы меня опять поразили глубиной - настоящий гуру =) Я в таких вопросах плаваю... мне бы ваши способности на этой жниве...
Автор: r_green
Дата сообщения: 22.05.2012 18:53
BookWarrior

Цитата:
Просто это напоминает решение солвом, и имеет те же ограничения, потому что упирается в извлечение радикалов RootSum, которое не может их извлечь из полинома 5-го порядка, а именно его я и пытаюсь в результате упростить =) Если это получение таким способом, т.е. как в общем виде решения для ур-ний вида x^n = a

Да, именно так она и делает.




Добавлено:

Цитата:
Вы меня опять поразили глубиной

Это просто навыки программирования. Поверьте, в чистой математике вы разбираетесь значительно лучше меня.
Автор: BookWarrior
Дата сообщения: 22.05.2012 19:03
r_green
да нет, это иллюзии: вы мне на моих задачах помогаете больше за 15 минут, чем я за целый день запарки и без шансов на просветление. Математику как предмет я всегда знал и знаю плохо, без кокетничества. И завидую тем, кто так с легонцой её и в хвост, и в гриву, таже не отдавая себе отчёта, что лёгкость эта кому-то была бы очень в тему - да нет её. В физике, возможно, я разбираюсь в каком-то непостыдном виде, но не в математике - это точно. Просто сюда я прихожу с тем, над чем корпел долго и сам в чём-то застрял, возникает иллюзия умника - но это только иллюзия. Знал бы я математику, сейчас через личку не мусолил бы ещё одного товарища, как сделать гауссово истребление переменных в матрице - вот такой стыд. А он надо мной смеётся. Впрочем, в результате всё-равно ничего не получится, потому что упрётся-то всё в тот же полином 5-го порядка, но хоть узнаю, как 20 лет назад сам же в техникуме решал задачки =)) Плюс стыд спесь сбивает, делает человека адекватнее - вот и сделает меня.

Такие пироги...
Автор: r_green
Дата сообщения: 22.05.2012 19:14
BookWarrior
Кстати, а как вообще обстоят дела с корнями полинома 5-го порядка? Есть какие-то спецф-ции, через которые они выражаются?
В каком виде вы рассчитываете получить решение?
Автор: BookWarrior
Дата сообщения: 22.05.2012 20:07
r_green
я его, признаться, не расчитываю получить, в смысле оно мне не надо, потому что оно не будет никаким выражаемым. Собственно поэтому его и не существует в справочниках, включая Математику. Но я нашёл плакат, который разработчики Математики представляли годы назад, для решения квинтики (quintic - ур. 5-го порядка). Решение какое-то бешеное и они его размазали по набору скриптов - но оно есть, готовое. Я его собрал в один скрипт, приблизительно полное. Не тестировал сильно - всё жду (ждал), когда выделят кластер с необходимой памятью. Авторы заявляют, что нужен Тер оперативки для получения аналитического выхлопа решения ур. в общем виде (т.е. я так понимаю все коэф-ты ненулевые), я натравливал на скромные полиномчики, символьные вычисления (рац. дроби и т.п.) получались. Но как это скажется на полномасштабной задаче - я не имею представления. 16 ГБ моего компа оно отожрало где-то за полчаса и ядро М. хлопнулось. На том тесты закончились, начались поиски суперкомпьютера.

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

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

Щас погляжу, где этот линк на постер... Ага, ну вот они:
1) постер, как основной материал по теме: http://library.wolfram.com/examples/quintic/steps.html#program - это прямо линк на секцию, где они объясняют решение квинтики;
2) а само решение скриптами лежит здесь: http://library.wolfram.com/infocenter/Demos/158/

В соотв. статьях по методу решения квинтики, пишут прямым текстом: "конечно, решения опубликовать невозможно - можно лишь привести список методов, как его сконструировать". Могу дать статью, если надо - но она как бы бесполезна, когда есть коды =)
Автор: r_green
Дата сообщения: 22.05.2012 20:29
BookWarrior
Да уж... моих знаний математики и близко не хватит, чтобы врубиться.

Привлекая википедию, понял только, что корни эти выражаются через корни других, специальных полиномов той же 5-й степени, но которые, в свою очередь, выражаются через ряд хорошо изученных спецфункций.
Автор: BookWarrior
Дата сообщения: 23.05.2012 09:19
r_green
ну моё понимание, призванное чисто для запоминания чокак: когда мы расклодывам полином в факторизованную форму через его корни в виде, что вы представили (x - x1)*(x - x2)*.... мы должны найти корни, потому что именно они должны развалить полином в ряд менее толстых, каждый из которых в уравнении "полином = 0" будет, из-за нуля, решаться совершенно независимо. Т.е., если говорить физическим уже языком, матрицы систем, которые приведут к таким полиномам, будут иметь блок-диагональную форму, где каждая блок-подматрица будет ответственна за отдельную скобку (x - xN) менее толстого полинома. т.е. развалятся на совершенно независимые подсистемы и могут быть исследованы раздельно. Это - весомое упрощение, следствие упрощение мат. задачи.

Я отвлёкся, как всегда. Теперь, чем в сущности являются эти x1, x2, ..., xN корни полинома? Они должны иметь определённые симметрии, т.е. укладываться в некоторое "числовое поле" (number field), по которому "растягивается" (я не знаю точной русской терминологии, сори) полином. В математике, например, посмотрите пример на Factor[..., Extension->...], вот Extension задаёт как раз "поле", по которому растягивается полином. Причём оно совсем неочевидное, и когда в поле нецелые числа, Factor по умолчанию не может развалить толстоту полинома - ему нужно конкретно указывать поле коэффициентов. А в смысле общего разложения любого полинома такое поле как раз и будет состоять из вычисленных корней. Ровно то, что вы получили для кубики выше - огромные выражения.

Вот. Теперь возвращаемся в исходную точку: т.е. получается, что чтобы упростить толщину полинома, нужно найти это поле. Ровно этим и занимаются поля Галуа и в той задаче о решении квинтики по линкам, составлен конвейер, алгоритм решения, где первым делом определяется группа симметрии заданного полинома. Когда она найдена, выбирается уже более известный метод решения (зачёркнутое неверно для решения общей квинтики, нередуцируемой, а относится к её редукции до низших порядков, где после выяснения группы симметрии решается ур-ние менее, чем 5-го порядка - это другое). Детали я не знаю и даже не хочу знать. Самое важное для меня - это принцип, концепция, и тут она заключается именно в нахождении этих "полей корней", насколько я понимаю. И по дороге этих рассуждений, становится понятно, почему любой способ получения решения не сможет как-то избежать проблем квинтики - я не математик, для меня это было далеко неочевидно. Но через пропы и обозрение результатов, я вижу, что всё сходится к одному и тому же - поиску корней, а для квинтики их уже не найти, поэтому должны применяться другие методы и вместо простого метода генерации числового поля (как в вашей ф-ции factor[...] - универсальном методе решения полиномиальных ур-ний), эти поля должны находиться из других соображений (анализ симметрий полинома и т.п.). Вот эти соображения - и есть суть теории полей Галуа и прочих преобразований, упомянутых в скриптах у них. Сначала делается каскад сворачивающих преобразований, получается решение для определённой формы полинома, потом разворачивающие преобразования, чтобы прочесть ответ.


Цитата:
Привлекая википедию, понял только, что корни эти выражаются через корни других, специальных полиномов той же 5-й степени, но которые, в свою очередь, выражаются через ряд хорошо изученных спецфункций.
ммм... по-моему нет, не спецфункций. Я могу быть сильно неправ, но спецфункции обычно возникают при интегрировании дифуров: ф-ции Бесселя, сферические гармоники и пр. Может не все, не знаю, но в процессе (аналитических) тестов никаких спец. функций из решения не вылезало. В сущности сами корни - это нечто геометрической природы, это точки пересечений, т.е. у них никогда не бывает распределений - это точки, - а спец. функции (обязательно?) завязаны на интегрирование какой-нибудь ф-ции распределения. Есть более или менее универсальные спец. функции, как например ф-ции Бесселя вылазиют как решение дифуров в цилиндрических координатах сразу, а римана дзета - как решение целого класса задач (но я не знаю, носит ли она интегральный хар-тер и дифференциально-уравненного ли типа задачи, которые она решает).
Автор: r_green
Дата сообщения: 23.05.2012 10:51
BookWarrior
Спасибо за разъяснение.


Цитата:
в той задаче о решении квинтики по линкам, составлен конвейер, алгоритм решения, где первым делом определяется группа симметрии заданного полинома. Когда она найдена, выбирается уже более известный метод решения.

Т.е. по этому алгоритму решаются не все квинтики? Нужны определённые особенности коэффициентов, за которые бы смог зацепиться алгоритм?


Цитата:
ммм... по-моему нет, не спецфункций. Я могу быть сильно неправ, но спецфункции обычно возникают при интегрировании дифуров: ф-ции Бесселя, сферические гармоники и пр. Может не все, не знаю, но в процессе (аналитических) тестов никаких спец. функций из решения не вылезало.

Ну, общее решение квинтики принципиально не может быть алгебраическим, так ведь?
Должно что-то такое там фигурировать...


Пошерстил немного вики по ключевым словам из тех статей, что вы привели.
Насколько же далеко отстоит типичный курс высшей математики даже на физмат факультетах от переднего края науки...

Страницы: 12345678910111213141516171819202122232425262728293031323334

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


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