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

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

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

xy



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

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


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

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 16:00 01-12-2003 | Исправлено: virussnu, 14:17 05-11-2018
GeorgeMame

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Разобрался с  
nBase = 25;  nOrder = 6;  
 
a={{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,         -1},
   {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,        -64},
   {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,       -729},
   {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,      -4096},
   {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     -15625},
   {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     -46656},
   {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,    -117649},
   {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,    -262144},
   {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,    -531441},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   -1000000},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   -1771561},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   -2985984},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   -4826809},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   -7529536},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  -11390625},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,  -16777216},  
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,  -24137569},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,  -34012224},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,  -47045881},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,  -64000000},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,  -85766121},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -113379904},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -148035889},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -191102976},
   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,  510600075}};
LatticeReduce[a]
 
{{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   0, 0, -1}, {0, -2, 1, 0, 1, 1, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
   0, 0, 0, 0, 0, 0, 0, 0}, {2, 0, -1, -1, 0, 0, -2, 0, -1, -1, 1, 0,  
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 1, -2, 1, 1, 1,
   1, -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, -1,  
  0, 2, 1, 1, -1, -1, -1, -1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  
  0, 0, 0}, {1, 1, -1, 0, 0, 0, 1, -1, 0, -1, 0, 2, -1, 0, 0, 0, 0, 0,
   0, 0, 0, 0, 0, 0, 0, 0}, {-1, -1, 2, 1, 1, 0, 0, 1, 0, 0,  
  0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, {0, 1, 0, 0, 1,  
  1, -1, -1, 1, 0, -1, -2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  
  0}, {1, 0, -1, 1, -1, 0, 0, -1, -1, 0, 1, 0, -1, -1, 1, 0, 0, 0, 0,  
  0, 0, 0, 0, 0, 0, 1}, {0, 0, -1, -1, 2, 0, -1, 0, 1, -1, 0, 0, -1,  
  0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, -1, 0, 0, 1, 0, -1,  
  1, -1, 0, -1, 0, 0, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0,  
  1, -1, 1, 0, 0, 0, -1, 1, -1, 1, 1, 0, 0, -1, -1, 1, 0, 0, 0, 0, 0,  
  0, 0, 0, -1}, {-1, 0, 0, 1, 1, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, -1,  
  0, -1, 1, 0, 0, 0, 0, 0, 0, -1}, {1, -1, 0, 0, 0, -1, -1, 0, -1, 1,  
  1, 0, 1, 0, 0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, -1,  
  0, 0, 0, 1, 0, 0, -1, 2, 0, 0, 0, -1, 0, -1, 1, 0, 0, 0, 0, 0,  
  0}, {0, 1, 1, 0, 0, 0, -1, 0, 0, 1, 1, -1, -1, 1, 0, 0, -1, 0,  
  0, -1, 1, 0, 0, 0, 0, 0}, {0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,  
  0, 1, 0, 0, 0, -1, 0, 0, -1, 1, 0, 0, 0}, {1, 0, -1, 0, 1, -1, -1,  
  0, 0, 0, 1, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, -1, 1, 0, 0}, {0, -1,
   0, -1, 1, -1, -1, 0, -1, 1, 1, 0, 0, 0, 1, 0, -1, 0, 1, -1, -1, 1,  
  0, 0, 0, 0}, {0, -1, 0, 0, -1, 0, 1, 1, 1, 0, -1, 0, 1, 1, 0, 1, 0,  
  1, 0, 0, 1, 0, -1, 0, 0, -1}, {0, 0, 1, 1, 1, 1, -1, -1, -1, 0, 0,  
  1, 1, -2, 0, 1, 0, 1, 0, 0, -1, 0, -1, 1, 0, 1}, {0, 2, -1, -1, 1,  
  0, 0, -1, -1, -1, 1, 0, 0, -1, 0, 0, -1, 1, 1, 1, 0, -1, 0, 0, 0,  
  0}, {0, 0, -1, 0, -1, 1, -1, 1, -1, 2, -2, -1, 0, 0, 0, 1, -1, 1, 0,
   1, -1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 2, 0, 0, 1, 0, -1, 1, 0, 1, 0,  
  0, 0, 1, -1, 1, 0, 0, 0, 1, -1, 0, 1}, {0, 0, 0, 1, 0, 0, 0, 0, 0,  
  0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0}}
 
Препод. сыну сказал, что надо сделать вывод только решений, состоящие из нулей и единиц. Не подскажите, какой код надо вставить после  
LatticeReduce[a];
чтобы выполнить это требование? Т.е. вывести последнее решение, при этом заменив нули единицами, единицы нулями и напечатать окончательный ответ в виде:
25^6 = 1^6 + 2^6 + 3^6 + 5^6 + 6^6 + 7^6 + 8^6 + 9^6 + 10^6 + 12^6 + 13^6 + 15^6 + 16^6 + 17^6 + 18^6 + 23^6
И если можно, то попроще, чтобы препод. не догадался, что моему балбесу помогали.

Всего записей: 136 | Зарегистр. 24-07-2015 | Отправлено: 09:17 26-04-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GeorgeMame
я же привел кусок.. он примитивный, но должен сработать.
просто суммируете количество 1 и 0 и должно быть равно общему количеству.

Цитата:
sol=Cases[mat, r_ /; Count[r, 1] + Count[r, 0] == Length[r]]

а потом просто создать строку пройдясь поэлементно.
 
потом тупо

Код:
res = {};
Do[
 If[sol[[1, int]] == 0, AppendTo[res, ToString[int] <> "^6"]];
 , {int, Range[1, 25]}]
Print["25^6=" <> StringRiffle[res, "+"]]

заменив, сооветственно, базу и порядок своими переменными как надо.

Всего записей: 11362 | Зарегистр. 20-09-2014 | Отправлено: 09:32 26-04-2020 | Исправлено: Mavrikii, 09:55 26-04-2020
GeorgeMame

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Извиняюсь за свою тупость. Спасибо.

Всего записей: 136 | Зарегистр. 24-07-2015 | Отправлено: 10:08 26-04-2020
Ognev

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При переходе на версию 12.1 шрифт в строке поиска в Help-е и на некоторых других элементах стал очень маленьким, вообще ничего не видно. Может кто знает, где его размер менять, а то весь Option Inspector уже перерыл.

Всего записей: 380 | Зарегистр. 07-09-2004 | Отправлено: 19:09 20-07-2020
Barabek

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Джентльмены, есть вытащенная постранично из .swf файла книга. И есть несколько файлов этой же книги (значительно лучшего качества), полученных из другого источника.
Декомпилированный .swf файл
   
Эталон
   
Вопросы:
1) Можно ли средствами Mathematica для первой картинки получить качество как у второй? Если можно, то как?
2) Можно ли натренировать в Mathematica нейросеть на десяти эталонных изображениях (десять разных страниц книги), чтобы потом обработать оставшиеся декомпилированные .swf файлы этой книги?

Всего записей: 239 | Зарегистр. 27-04-2007 | Отправлено: 11:38 02-08-2020 | Исправлено: Barabek, 12:01 02-08-2020
BookWarrior



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Barabek
1) увеличить количество информации не получится (теорема Шеннона и Котельникова/Найквиста как ссылки на конкретное фундаментальное ограничение). Тут одна картинка значительно выше разрешением и явно чётче. Если они одинакового пиксельного размера, худшая картинка всё-равно эквивалентна чёткой, но в меньшем разрешении - остально просто "добавленные нули", что не увеличивается информационного содержания.
 
2) хмм... как-то сложно для нейросети и ненадёжно.
 
Другой момент связан не с увеличением информации, а с коррекцией искажений в рамках своего разрешения. Это сделать можно, если знать или хотя бы предполагать PSF, приведшую к размазыванию. Выглядит как некое подобие расфокусированной фотографии. То есть предположение должно быть сделано о "функции точечного распределения" (point spread function, PSF), например (но вовсе не обязательно) гауссовская. Тогда, взяв некий гауссиан как ядро деконволюции, можно сделать обратную свёртку и убрать влияние зармазывающего фактора на эту картинку. Это её восстановит (соберёт значимые элементы получше сообразно нашему предположению о предварительном размазывании), но информации не добавит. Тут вот деблюр текста похож на ситуацию http://smartdeblur.net/
 
То есть ответ двоякий: что-то улучшить можно, но это и рядом не ляжет с тем, что хочется.

Всего записей: 1340 | Зарегистр. 15-08-2004 | Отправлено: 18:23 01-10-2020 | Исправлено: BookWarrior, 09:14 02-10-2020
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Barabek
BookWarrior
Не знаю, как насчёт этого в субже, но какая проблема улучшить качество: что мешает сделать пары для символов в худшем и лучшем качествах, а потом найти все худшие и поменять на все лучшие?
Не уверен, нужна ли здесь вообще нейросеть. Возможно для распознавания и нужна

Всего записей: 2377 | Зарегистр. 20-04-2004 | Отправлено: 19:27 01-10-2020 | Исправлено: KChernov, 19:29 01-10-2020
BookWarrior



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
да, тема в сущности по оцифровке эл. книги, но Barabek возжелал код на Математике, наверное как пробу.
 
OCR - это сейчас нейросетки. Да, обработчики изредка делают замену распознанными символами (по-моему этот тренд отвалился много лет назад в пользу скрытого слоя OCR и исходной картинки поверх), но я даже не подумал из контекста постановки (Математика, картинка), хотя возможно это то, что ищет Barabek. Такое преобразование всегда даёт ошибки. Из запомнившихся ужасных примеров - старая эл. версия Большой Физ. Энц. В случае низкого соотношения сигнал/шум распознавание даст плохую точность текста (инфы-то мало), хотя качество изображения будет великолепным вне зависимости от качества исходной картинки Например буквы "и" могут превращаться в "н" - очень частое явление. Наверное если поверх OCR есть ещё алгоритм распознавания живой речи, то многие такие словарные слова будут скорректированы, но в текущем виде исходник выглядит ужасным для обработки.
 
Практический пример из первой картинки выше: как отличить зашумлённое/низкоразрешённое "но" от "по" даже с алгоримом обработки живого языка поверх OCR? Очень трудно. Как отличить "зрения" от "зрений" или "зрении", "годами" от "голами" и подобные? Если ещё стиль шрифта меняется - это вообще кошмар, курсив особенно. Это даст сбои, которые будут тонко вплетены в исключительного качества заменённую картинку, т.е. читать будет легко - но засчёт полностью неверных букв тут и там: утомляемость снизится, но сделанные ошибки станут нераспознаваемыми даже человеческому глазу.
 
Так делают, но поскольку текст научный/академический, я думаю замену символов делать неразумно. БФЭ мы дичайшими усилиями местного сообщества переделывали, чего не сделал хорошо даже издатель, продавая БФЭ в таком заменённом ужасном качестве в собственном исполнении. Такая замена наверное оправдана для художественной литературы и прочих некритических текстов, где действительно даже в современных оригиналах полно опечаток и прямых ошибок - человеку это не мешает, сигнал/шум также почти не меняет.
 
Лет 10 назад вроде был онлайн сервис по конверсии в DjVu, где можно было поиграться, не устанавливая ничего самостоятельно. Вчера я попытался онлайн размазывание убрать, но тут лучше управляемый алгоритм иметь в руках, на веб всё опробованное плохо работает для таких случаев - нужно подкручивать, а возможности такой нет.

Всего записей: 1340 | Зарегистр. 15-08-2004 | Отправлено: 04:40 02-10-2020 | Исправлено: BookWarrior, 09:11 02-10-2020
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BookWarrior
Так я не совсем про OCR - частную задачу зачастую можно решить лучше
И собственно уже на этапе составления словаря должно быть понятно, есть ли разные символы с одинаковой сигнатурой.
Но если есть - да, проблема. Тогда надо либо вычитывать, ну либо словарь подключать (и лучше на этапе распознавания)

Всего записей: 2377 | Зарегистр. 20-04-2004 | Отправлено: 09:35 02-10-2020
BookWarrior



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну вот по сути 2 пути: алгоритмическиq и эвристический
 
1) свертка с PSF
2) OCR со словарями
 
Причём если первое даст улучшение, то второе лучше запускать после первого.

Всего записей: 1340 | Зарегистр. 15-08-2004 | Отправлено: 18:09 02-10-2020
BookWarrior



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

Цитата:
2) Можно ли натренировать в Mathematica нейросеть на десяти эталонных изображениях (десять разных страниц книги)

маленькая поправочка - в этом маленьком обсуждении много сдвигов контекста получилось: OCR использует нейросетки для распознавания конкретных символов, но не всей страницы, как в постановке вопроса. Для всей страницы это бессмысленно тренировать, оно никогда не даст никакого полезного результата на любом вообразимом множестве. Либо посимвольно - тогда это OCR, либо без нейросеток.

Всего записей: 1340 | Зарегистр. 15-08-2004 | Отправлено: 16:16 11-10-2020
GeorgeMame

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ввожу в 12.2
KnapsackSolve[{4, 2, 3}, 9]
и получаю по мордасам
{0, 4, 0}
хотя в хелпе правильный ответ
{0, 3, 1}

Всего записей: 136 | Зарегистр. 24-07-2015 | Отправлено: 20:00 15-02-2021
karl_karlsson



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GeorgeMame
11.2 выдает все как надо
{0, 3, 1}
 
Как всегда, с каждой версии число багов зашкаливает.

Всего записей: 1675 | Зарегистр. 14-03-2007 | Отправлено: 01:57 16-02-2021
BookWarrior



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
) математика становится всё улучшеннее и улучшеннее.

Всего записей: 1340 | Зарегистр. 15-08-2004 | Отправлено: 10:22 01-03-2021
Partner1



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
12.3.0.0 Linux x86 (64 bit) в хелпе уже стоит 8 вместо 9
 
In[1]:= KnapsackSolve[{4, 2, 3}, 8]
Out[1]= {0, 4, 0}
 
Если ввести 9, выдает то же самое вместо правильного ответа
In[2]:= KnapsackSolve[{4, 2, 3}, 9]
Out[2]= {0, 4, 0}

Всего записей: 266 | Зарегистр. 28-11-2007 | Отправлено: 13:34 02-06-2021 | Исправлено: Partner1, 13:41 02-06-2021
Открыть новую тему     Написать ответ в эту тему

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

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


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru