Треугольник Серпинского

Треугольник Серпинского - Messages

#1 Posted: 10/19/2010 1:28:18 PM
уни

уни

156 likes in 355 posts.

Group: User

Россия навсегда! Вячеслав Мезенцев
2 users liked this post
build_your_web 10/19/2010 1:31:00 PM, Serg 1/25/2014 12:51:00 PM
#2 Posted: 10/19/2010 1:31:20 PM
build_your_web

build_your_web

4 likes in 127 posts.

Group: User

Круто!
#3 Posted: 10/19/2010 1:39:34 PM
уни

уни

156 likes in 355 posts.

Group: User

Народу нравится

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

По-моему, это называется нереентерабельность Функции DOS не могли использовать сами себя, т.к. использовали при передаче параметров не стек, а регистры процессора.
Россия навсегда! Вячеслав Мезенцев
#4 Posted: 10/19/2010 2:41:14 PM
уни

уни

156 likes in 355 posts.

Group: User

Желающие разобраться в алгоритме могут доделать Ковёр Серпинского. Мне стало лень, слишком долго считает.


Документ: Ковёр Серпинского
Россия навсегда! Вячеслав Мезенцев
1 users liked this post
Serg 1/25/2014 12:52:00 PM
#5 Posted: 10/19/2010 4:04:47 PM
Andrey Ivashov

Andrey Ivashov

2270 likes in 3734 posts.

Group: Super Administrator

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

Wrote

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


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

Ещё раз спасибо!
#6 Posted: 10/19/2010 11:37:05 PM
уни

уни

156 likes in 355 posts.

Group: User

Wrote

Wrote

Какая-то проблема с augment()


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



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

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

Причём, без определения функции это считается:
augment(v; augment(v+el(v;1);v+el(v;2)))
Россия навсегда! Вячеслав Мезенцев
#7 Posted: 10/20/2010 6:09:57 AM
уни

уни

156 likes in 355 posts.

Group: User


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

П.С. Нужно поколдовать с порядком перемещения пирамид, чтобы не было артефактов.
Россия навсегда! Вячеслав Мезенцев
1 users liked this post
Serg 1/25/2014 12:52:00 PM
#8 Posted: 10/20/2010 6:51:33 AM
Mikka

Mikka

36 likes in 206 posts.

Group: User

Предлагаю использовать "Ковёр Серпинского" в тесте производительности версий
з.ы. на моей машине считался 8мин. 33 сек.
Не официальный справочник http://sites.google.com/site/mikkhalichlab/ jabber конференция smath@conference.jabber.ru
#9 Posted: 10/23/2010 2:56:27 PM
Andrey Ivashov

Andrey Ivashov

2270 likes in 3734 posts.

Group: Super Administrator

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

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


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

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

С уважением, Андрей Ивашов.
3 users liked this post
уни 10/23/2010 10:56:00 PM, Serg 1/25/2014 12:53:00 PM, build_your_web 10/24/2010 5:12:00 AM
#10 Posted: 2/3/2012 1:20:51 AM
Mikka

Mikka

36 likes in 206 posts.

Group: User

Wrote

Предлагаю использовать "Ковёр Серпинского" в тесте производительности версий
з.ы. на моей машине считался 8мин. 33 сек.


В версии 0.91 на той же машине 2 мин 21 сек!
Прогресс на лицо или на лице
Не официальный справочник http://sites.google.com/site/mikkhalichlab/ jabber конференция smath@conference.jabber.ru
#11 Posted: 4/17/2012 5:22:45 PM
уни

уни

156 likes in 355 posts.

Group: User

Кривая Гильберта



Документ: Кривая Гильберта.sm
Россия навсегда! Вячеслав Мезенцев
4 users liked this post
Mikka 4/18/2012 1:19:00 PM, Fridel Selitsky 4/18/2012 12:57:00 AM, Serg 1/25/2014 12:53:00 PM, kmihaylovich 4/19/2012 2:27:00 AM
#12 Posted: 4/22/2012 5:03:53 AM
уни

уни

156 likes in 355 posts.

Group: User

Дерево Пифагора



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

Примечание. Очень долго считает. При ограничении размера конечной ветки до 0,1 считает около 1 минуты у меня.
Россия навсегда! Вячеслав Мезенцев
1 users liked this post
Serg 1/25/2014 12:53:00 PM
  • New Posts New Posts
  • No New Posts No New Posts