Русскоязычный форум закрыт из-за отсутствия активности (доступен только для чтения).
Пожалуйста, пользуйтесь англоязычной его версией. Приносим извинения за неудобства
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Вход


Опции
К последнему сообщению К первому непрочитанному
Offline уни  
#1 Оставлено : 19 октября 2010 г. 20:28:18(UTC)
уни


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 02.06.2009(UTC)
Сообщений: 346
Мужчина
Российская Федерация

Сказал «Спасибо»: 50 раз
Поблагодарили: 156 раз в 105 постах
Россия навсегда!
Вячеслав Мезенцев
thanks 2 пользователей поблагодарили уни за этот пост.
build_your_web оставлено 19.10.2010(UTC), genf оставлено 25.01.2014(UTC)

Wanna join the discussion?! Login to your Форум проекта SMath forum account. Новые регистрации запрещены.

Offline build_your_web  
#2 Оставлено : 19 октября 2010 г. 20:31:20(UTC)
build_your_web


Статус: Advanced Member

Группы: Developers, Registered
Зарегистрирован: 28.08.2009(UTC)
Сообщений: 127

Сказал(а) «Спасибо»: 19 раз
Поблагодарили: 4 раз в 4 постах
Круто!
Offline уни  
#3 Оставлено : 19 октября 2010 г. 20:39:34(UTC)
уни


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 02.06.2009(UTC)
Сообщений: 346
Мужчина
Российская Федерация

Сказал «Спасибо»: 50 раз
Поблагодарили: 156 раз в 105 постах
Народу нравится Good

Пришлось покумекать немного. Какая-то проблема с augment():
так работает
Код:
augment(1;2)

а вот так не работает:
Код:
augment(1;augment(1;2))


По-моему, это называется нереентерабельность Good Функции DOS не могли использовать сами себя, т.к. использовали при передаче параметров не стек, а регистры процессора.
Россия навсегда!
Вячеслав Мезенцев
Offline уни  
#4 Оставлено : 19 октября 2010 г. 21:41:14(UTC)
уни


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 02.06.2009(UTC)
Сообщений: 346
Мужчина
Российская Федерация

Сказал «Спасибо»: 50 раз
Поблагодарили: 156 раз в 105 постах
Желающие разобраться в алгоритме могут доделать Ковёр Серпинского. Мне стало лень, слишком долго считает.


Документ: Ковёр Серпинского
Россия навсегда!
Вячеслав Мезенцев
thanks 1 пользователь поблагодарил уни за этот пост.
genf оставлено 25.01.2014(UTC)
Offline smath  
#5 Оставлено : 19 октября 2010 г. 23:04:47(UTC)
smath


Статус: Administration

Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Мужчина
Российская Федерация

Сказал «Спасибо»: 640 раз
Поблагодарили: 262 раз в 102 постах
Замечательный тест программы, спасибо! Разберусь в чём причина медленных расчётов в данном случае - думаю, смогу ускорить. Кстати, в треугольнике Серпинского если в контекстном меню включить численную оптимизацию (ну или использовать eval(..), что, по сути, аналогично) для определения S (S:=Sp(n)), то производительность вырастет почти в два раза.

уни написал:
Пришлось покумекать немного. Какая-то проблема с augment()

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

Ещё раз спасибо!
Offline уни  
#6 Оставлено : 20 октября 2010 г. 6:37:05(UTC)
уни


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 02.06.2009(UTC)
Сообщений: 346
Мужчина
Российская Федерация

Сказал «Спасибо»: 50 раз
Поблагодарили: 156 раз в 105 постах
smath написал:
уни написал:
Какая-то проблема с augment()

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


Там оба аргумента векторы, точнее даже матрицы. Я привёл не тот пример.

Это работает:
T(x)←line(a←augment(x+el(x;1);x+el(x;2));augment(x;a);2;1)
А это нет:
T(x)←augment(x;augment(x+el(x;1);x+el(x;2)))

Причём, без определения функции это считается:
Код:
augment(v; augment(v+el(v;1);v+el(v;2)))

Отредактировано пользователем 20 октября 2010 г. 6:56:48(UTC)  | Причина: Не указана

Россия навсегда!
Вячеслав Мезенцев
Offline уни  
#7 Оставлено : 20 октября 2010 г. 13:09:57(UTC)
уни


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 02.06.2009(UTC)
Сообщений: 346
Мужчина
Российская Федерация

Сказал «Спасибо»: 50 раз
Поблагодарили: 156 раз в 105 постах

Документ: Треугольник Серпинского 3D.sm

П.С. Нужно поколдовать с порядком перемещения пирамид, чтобы не было артефактов.
Россия навсегда!
Вячеслав Мезенцев
thanks 1 пользователь поблагодарил уни за этот пост.
genf оставлено 25.01.2014(UTC)
Offline mikka  
#8 Оставлено : 20 октября 2010 г. 13:51:33(UTC)
mikka


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 21.01.2009(UTC)
Сообщений: 182
Мужчина
Откуда: Волгоград

Сказал «Спасибо»: 126 раз
Поблагодарили: 36 раз в 22 постах
Предлагаю использовать "Ковёр Серпинского" в тесте производительности версий Good
з.ы. на моей машине считался 8мин. 33 сек.
Не официальный справочник http://sites.google.com/site/mikkhalichlab/
jabber конференция smath@conference.jabber.ru
Offline smath  
#9 Оставлено : 23 октября 2010 г. 21:56:27(UTC)
smath


Статус: Administration

Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Мужчина
Российская Федерация

Сказал «Спасибо»: 640 раз
Поблагодарили: 262 раз в 102 постах
Работаю над ускорением вычислений и выяснил, что в данных примерах основное время вычисления программа тратит на получение элементов матрицы S (т.к. матрица очень большая, а в общем случае получить элемент матрицы можно только разобрав её полностью, из-за чего и начинаются тормоза). Из этого, кстати, следует, что если минимизировать количество обращений к элементам матрицы, то и скорость вычислений существенно возрастёт (это справедливо до и после оптимизации в коде), а в цикле G(x) кол-во таких обращений можно уменьшить с шести до двух.

Делюсь промежуточными результатами оптимизации кода (см. время вычислений внизу):


Что бы получить похожие результаты достаточно распаковать SpecialFunctions.1_2_3948.Plugin.Bin.zip плагин и заменить им предыдущую версию из папки plugins в установочной директории SMath Studio. Оптимизированные версии файлов: TreugolnikSerpinskogo.mod2.sm, KoverSerpinskogo.mod2.sm.

P.S.: И это не предел. Не всё удалось вынести в плагин - некоторой оптимизации подверглось и ядро, т.ч. в новой версии SMath Studio процесс будет идти ещё быстрее.

С уважением, Андрей Ивашов.

Отредактировано пользователем 23 октября 2010 г. 22:40:19(UTC)  | Причина: Не указана

thanks 3 пользователей поблагодарили smath за этот пост.
уни оставлено 24.10.2010(UTC), build_your_web оставлено 24.10.2010(UTC), genf оставлено 25.01.2014(UTC)
Offline mikka  
#10 Оставлено : 3 февраля 2012 г. 8:20:51(UTC)
mikka


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 21.01.2009(UTC)
Сообщений: 182
Мужчина
Откуда: Волгоград

Сказал «Спасибо»: 126 раз
Поблагодарили: 36 раз в 22 постах
mikka написал:
Предлагаю использовать "Ковёр Серпинского" в тесте производительности версий Good
з.ы. на моей машине считался 8мин. 33 сек.

В версии 0.91 на той же машине 2 мин 21 сек!
Прогресс на лицо или на лице Clapping
Не официальный справочник http://sites.google.com/site/mikkhalichlab/
jabber конференция smath@conference.jabber.ru
Offline уни  
#11 Оставлено : 18 апреля 2012 г. 0:22:45(UTC)
уни


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 02.06.2009(UTC)
Сообщений: 346
Мужчина
Российская Федерация

Сказал «Спасибо»: 50 раз
Поблагодарили: 156 раз в 105 постах
Кривая Гильберта



Документ: Кривая Гильберта.sm
Россия навсегда!
Вячеслав Мезенцев
thanks 4 пользователей поблагодарили уни за этот пост.
Ber7 оставлено 18.04.2012(UTC), mikka оставлено 18.04.2012(UTC), kmihaylovich оставлено 19.04.2012(UTC), genf оставлено 25.01.2014(UTC)
Offline уни  
#12 Оставлено : 22 апреля 2012 г. 12:03:53(UTC)
уни


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 02.06.2009(UTC)
Сообщений: 346
Мужчина
Российская Федерация

Сказал «Спасибо»: 50 раз
Поблагодарили: 156 раз в 105 постах
Дерево Пифагора



Документ: Pythagoras Tree.sm

Примечание. Очень долго считает. При ограничении размера конечной ветки до 0,1 считает около 1 минуты у меня.
Россия навсегда!
Вячеслав Мезенцев
thanks 1 пользователь поблагодарил уни за этот пост.
genf оставлено 25.01.2014(UTC)
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.