сфера nd

Форум пользователей пакета Maple

Модератор: Admin

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

сфера nd

Сообщение алексей_алексей » Вт сен 20, 2011 9:17 pm

restart:
n := 2:
R := 1.:
x := seq(cat(x, i), i = 1 .. n+1):
a := seq(cat(a, i), i = 1 .. n):
f := cos(a1)*sin(a1)*sin(a2)*cos(a2):
x1 := unapply(R*op(1, f)*op(3, f), a);
x2 := unapply(R*op(2, f)*op(3, f), a);
x3 := unapply(R*op(4, f), a);

Речь идёт о гиперсфере. Хочу автоматизировать процесс получения её точек. Общая формула имеется в Википедии. Не знаю, понятно ли на примере обычной сферы, какой подход предполагается к построению гиперсферы… Из общего набора множителей думается отбирать нужные для каждой координаты. Число координат всегда чётное. Поскольку только минут как двадцать-тридцать назад непосредственно подступился к тексту, то до обобщения, чувствую, пройдёт не один год, если вообще осилю. Потому просю поучаствовать в обобщении и вообще в осмыслении алгоритма…

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: сфера nd

Сообщение алексей_алексей » Ср сен 21, 2011 9:50 pm

В Википедии формула гиперсферы неверна. Это уже видно из параметрического уравнения сферы в той же Википедии на той же странице… Надеемся, это просто опечатка. Формула должна (если и я не ошибаюсь) иметь такой вид:
Изображение
Что должно легко программироваться безо всяких op()… Вот тебе и Википедия…. Чуть голову не сломал над тем, как автоматизировать процесс…
Все равно, кто желает, может прИнять участие…

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: сфера nd

Сообщение алексей_алексей » Чт сен 22, 2011 9:29 pm

Плохо, что меня никто не остановил. Правильно будет и так, и так. На самом деле, именно в Википедии приведёно технологичное и легко программируемое представление гиперсферы. Вид выражения зависит от выбора первой координаты и параметра. На самой поверхности это не отражается… Теперь можно спокойно думать над написанием процедуры…

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: сфера nd

Сообщение алексей_алексей » Сб сен 24, 2011 5:24 pm

restart:
with(plots):
n := 3: R := 1.: m := 0: mm := 20:

Gsphere := proc (n, R, u)
local j:
u[1] := R*(product(sin(a[i]), i = 1 .. n-1)):
for j to n-1 do u[j+1] := R*cos(a[j])*(product(sin(a[i]), i = j+1 .. n-1))
end do
end proc:


for k to mm do
for kk to mm do
a := 2.*Pi*kk/mm, 2.*Pi*k/mm:
Gsphere(n, R, u):
m := m+1:
x[m] := u[1]:
y[m] := u[2]:
z[m] := u[3] end do end do:
L := seq([x[i], y[i], z[i]], i = 1 .. m):
pointplot3d([L], axes = normal, color = red);


Теперь имеется процедура, которая рисует формулу гиперсферы. (Данный текст проверяет её на примере обычной сферы.) Если же требуется просто посмотреть на формулу, то надо вызвать процедуру, задав значение n без конкретного R , и распечатать u

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: сфера nd

Сообщение алексей_алексей » Пн сен 26, 2011 9:10 pm

А вот на такой вопрос могу получить ответ: имеется ли в пакете стандартная возможность вкладывать циклы динамически? Для получения точек гиперсферы такое надо. Напомню, сама гиперсфера выступает в роли границы области залегания корней СНАУ …

Selin
Сообщения: 43
Зарегистрирован: Чт апр 14, 2011 11:14 am

Сообщение Selin » Вт сен 27, 2011 8:44 am

Такую возможность дают средства Аладьева, описанные в его книгах. В его биб-ке это процедуры, например, FOR_DO, SEQ. Не раз сам их использовал для динамической генерации вложенных циклов. По аналогии можно делать и для циклов других типов.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Вт сен 27, 2011 10:08 pm

Selin писал(а):...

Из-за проблем с повреждёнными регистрами не могу открывать некоторые ссылки. (А на своей машине не работает, например, “поиск” или “найти ” в меню.) Поэтому спросил о стандартных средствах. Спасибо, у Аладьева читал о его библиотеке, но вот добраться до неё не могу, хотя ссылки имеются…
Пока спрошу наперёд: она нормально устанавливается и работает?


Кто посоветует, как восстановить исходные значения регистров? Скачал вот Registry Recovery Toolbox, а она требует файл с регистрами. А как он называется и где находится на (лицензионном) CD с XP, не знаю…

Selin
Сообщения: 43
Зарегистрирован: Чт апр 14, 2011 11:14 am

Сообщение Selin » Вт сен 27, 2011 10:39 pm

Библиотека Аладьева и устанавливается, и работает. Сам ею пользуюсь несколько лет. Одну из ее последних версий можно найти здесь http://www.aladjev.narod.ru/ . Имеется она и на зарубежных сайтах, а также обсуждается на http://www.mapleprimes.com/. Насколько я знаю ряд новых средств представлен и в его последней книге по Мэйпл и Математике.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Ср сен 28, 2011 10:07 pm

Selin писал(а):Библиотека Аладьева и устанавливается, и работает. Сам ею пользуюсь несколько лет. Одну из ее последних версий можно найти здесь http://www.aladjev.narod.ru/ . Имеется она и на зарубежных сайтах, а также обсуждается на http://www.mapleprimes.com/. Насколько я знаю ряд новых средств представлен и в его последней книге по Мэйпл и Математике.

Вернулся к полноценной жизни – переустановил систему и могу скачивать с депозита...

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Чт сен 29, 2011 10:01 pm

Чего хочется сообщить: пока, естественно, не разобрался, как работают динамические вложения, но библиотека Аладьева установилась на 13-ую, и примеры из хэлпа функционируют… Но можно ли это называть стандартными средствами?

Selin
Сообщения: 43
Зарегистрирован: Чт апр 14, 2011 11:14 am

Сообщение Selin » Чт сен 29, 2011 10:44 pm

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

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Пт сен 30, 2011 9:22 am

Selin писал(а):...

Формально, если исходные тексты имеются, то средства стандартные. Но чтобы предоставить кому-либо в пользование, надо, скорее всего, только вместе со всей библиотекой и правилами её установки, а они не совсем стандартные, как показалось… Хотя, о чем это я? Мне бы алгоритм хоть когда-нибудь реализовать, а тут такой мощный инструмент в помощь. Спасибо.

Selin
Сообщения: 43
Зарегистрирован: Чт апр 14, 2011 11:14 am

Сообщение Selin » Пт сен 30, 2011 3:24 pm

Инсталляция библиотеки что ни на есть самая стандартная, при этом предлагаются 2 варианта. См. ReadMe.htm.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Пт сен 30, 2011 4:18 pm

Selin писал(а):Инсталляция библиотеки что ни на есть самая стандартная, при этом предлагаются 2 варианта. См. ReadMe.htm.

Мне вот понадобилось редактировать файл .ini, не знаю, может, и без этого получилось бы. А второй способ и вовсе не прошёл – пришлось даже прерывать электропитание… Зато, помнится, когда устанавливал пакет Моисеева, всё выглядело довольно стандартно…
Но ничего, лишь бы разобрался, и оно работало…

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Пт сен 30, 2011 10:16 pm

Для понимания работы конструкции FOR_DO автор рекомендует книгу “Системы компьютерной алгебры: Maple: Искусство программирования”. Искал в ней, но не нашёл. В попавшем ко мне экземпляре, например, номера глав в оглавлении и в тексте не совпадают, но и по названию найти не смог. Возможно, пока мало потратил времени. Но то, что видел в хэлпе к библиотеке, мне не показалось относящимся к динамической генерации циклических конструкций. Нельзя ли привести пример FOR_DO, по которому можно уяснить, как одним этим выражением заменяется конструкция for k1 to m do … for kn to m do ( ) od:…od: для произвольного “n” ?