Гиперболоид

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

Модератор: Admin

Кли
Сообщения: 156
Зарегистрирован: Пт ноя 04, 2016 4:54 pm

Гиперболоид

Сообщение Кли » Пн фев 04, 2019 11:02 pm

Здравствуйте!!! Как реализовать гиперболоид с образующими в обе стороны?
https://mydocx.ru/2-20123.html

Kitonum
Сообщения: 2080
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Гиперболоид

Сообщение Kitonum » Вт фев 05, 2019 12:53 pm

Здесь решение для одного семейства образующих. Для второго семейства всё аналогично.

Код: Выделить всё

a:=1: b:=2: c:=3:
H:=x^2/a^2+y^2/b^2-z^2/c^2=1:
H1:=H-y^2/b^2;
H2:=(x/a-z/c)*(x/a+z/c)=(1-y/b)*(1+y/b);
Sys1:={cos(p)*(x/a-z/c)+sin(p)*y/b=sin(p), sin(p)*(x/a+z/c)-cos(p)*y/b=cos(p)};
LinearAlgebra:-GenerateMatrix(expand(Sys1),[x,y,z]);
L:=simplify(LinearAlgebra:-LinearSolve(%, free=t));
with(plots):
PH:=implicitplot3d(H, x=-5..5, y=-5..5, z=-5..5, style=surface, color="LightBlue", numpoints=100000):
PL:=seq(spacecurve(convert(L,list), t[2]=-5..5, color=red, thickness=3), p=[seq(Pi/15*n+0.01, n=0..29)]):
display(PH,PL, axes=normal, view=[-5..5,-5..5,-5..5]);

Изображение

Кли
Сообщения: 156
Зарегистрирован: Пт ноя 04, 2016 4:54 pm

Re: Гиперболоид

Сообщение Кли » Вт фев 05, 2019 1:45 pm

спасибо большое за помощь

Кли
Сообщения: 156
Зарегистрирован: Пт ноя 04, 2016 4:54 pm

Re: Гиперболоид

Сообщение Кли » Вт фев 05, 2019 2:30 pm

что такое free=t и p?
и как изменить для гиперболического параболоида?

Код: Выделить всё

a:=1: b:=1:
H:=x^2/a^2-y^2/b^2=2*z:
Sys1:={cos(p)*(x/a-y/b)=2*z, (x/a+y/b)=cos(p)}:
Sys2:={sin(p)*(x/a+y/b)=2*z, (x/a-y/b)=sin(p)}:
A1:=GenerateMatrix(expand(Sys1),[x,y,z]):
A2:=GenerateMatrix(expand(Sys2),[x,y,z]):
L1:=simplify(LinearSolve(A1,free=t)):
L2:=simplify(LinearSolve(A2,free=q)):
PH:=implicitplot3d(H,x=-4..4,y=-4..4,z=-4..4,style=surface,color="LightBlue",numpoints=100000):
PL1:=seq(spacecurve(convert(L1,list),t[2]=-4..4,color=red,thickness=3),p=[seq(Pi/15*n,n=0..30)]):
PL2:=seq(spacecurve(convert(L2,list),q[2]=-4..4,color=red,thickness=3),p=[seq(Pi/15*n,n=0..30)]):
display(PH,PL1,PL2,axes=none,view=[-4..4,-4..4,-4..4]);

Markiyan Hirnyk
Сообщения: 1348
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Re: Гиперболоид

Сообщение Markiyan Hirnyk » Вт фев 05, 2019 8:13 pm

Kitonum, Что-то в Вашем коде надо подправить: графики образующих PL вылазят, т.е.опция view не работает в Document Mode.

Kitonum
Сообщения: 2080
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Гиперболоид

Сообщение Kitonum » Вт фев 05, 2019 11:02 pm

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

Код: Выделить всё

restart;
a:=1: b:=2: c:=3: N:=30:
H:=x^2/a^2+y^2/b^2-z^2/c^2=1:
L1:=<a*cos(p),b*sin(p),0>+t*<-a*sin(p),b*cos(p),c>;
L2:=<a*cos(p),b*sin(p),0>+t*<-a*sin(p),b*cos(p),-c>;
with(plots):
PH:=implicitplot3d(H, x=-5..5, y=-5..5, z=-5..5, style=surface, color="LightBlue", numpoints=100000):
PL1:=seq(spacecurve(L1, t=-5..5, color=red, thickness=3), p=[seq(2*Pi/N*n, n=1..N)]):
PL2:=seq(spacecurve(L2, t=-5..5, color=red, thickness=3), p=[seq(2*Pi/N*n, n=1..N)]):
display(PH,PL1,PL2, axes=normal, view=[-5..5,-5..5,-5..5]);

Изображение

Kitonum
Сообщения: 2080
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Гиперболоид

Сообщение Kitonum » Вт фев 05, 2019 11:11 pm

Кли, t это просто имя для параметра (прямые в пространстве удобно задавать параметрически), а p это параметр для выбора различных прямых.
Ниже - решение проблемы для гиперболического параболоида:

Код: Выделить всё

restart;
a:=2: b:=3:  N:=20:
H:=1/2*(x^2/a^2-y^2/b^2):
L1:=[a*(p^2+2*t)/(2*p),-b*(p^2-2*t)/(2*p),t];
L2:=[a*(p^2+2*t)/(2*p),b*(p^2-2*t)/(2*p),t];
with(plots):
PH:=plot3d(H, x=-4..4, y=-4..4, style=surface, color="LightBlue"):
PL1:=seq(spacecurve(L1, t=-4..4, color=red, thickness=3), p={seq(n/4, n=-N+1/2..N+1/2,1)}):
PL2:=seq(spacecurve(L2, t=-4..4, color=red, thickness=3), p={seq(n/4, n=-N+1/2..N+1/2,1)} ):
display(PH,PL1,PL2, axes=normal, view=[-4..4,-4..4,-1.5..2], lightmodel=light2);

Изображение

Markiyan Hirnyk
Сообщения: 1348
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Re: Гиперболоид

Сообщение Markiyan Hirnyk » Вт фев 05, 2019 11:19 pm

Kitonum , та же проблема и с улучшеным кодом в Мэйплах 2018.2.1, 2017.3, 16.03 на Виндовз 10 32-бит. Цивилизованные люди отвечают на запросы, не так ли?

Kitonum
Сообщения: 2080
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Гиперболоид

Сообщение Kitonum » Вт фев 05, 2019 11:41 pm

Markiyan, я не понял сути вашей проблемы. Сам я не использую Document Mode, только WorkSheet Mode, т.е. 1d math input.

Markiyan Hirnyk
Сообщения: 1348
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Re: Гиперболоид

Сообщение Markiyan Hirnyk » Ср фев 06, 2019 8:46 am

Kitonum, Ваш ответ
Markiyan, я не понял сути вашей проблемы. Сам я не использую Document Mode, только WorkSheet Mode, т.е. 1d math input
является отпиской. Тот же дефект наблюдается и в Worksheet Mode. Возможно, разработчики не сделали опцию view для 32-битной версии Мэйпла.

Kitonum
Сообщения: 2080
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Гиперболоид

Сообщение Kitonum » Ср фев 06, 2019 11:17 am

Markiyan, кажется это проблема не Maple, а Windows, т.к. у меня в Maple 2017.3 (32 bit) всё работает нормально в Windows 10 (64 bit):
Изображение

Markiyan Hirnyk
Сообщения: 1348
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Re: Гиперболоид

Сообщение Markiyan Hirnyk » Ср фев 06, 2019 11:24 am


Markiyan Hirnyk
Сообщения: 1348
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Re: Гиперболоид

Сообщение Markiyan Hirnyk » Ср фев 06, 2019 4:04 pm

Kitonum, у меня такое впечатление, что Ваш рисунок - подделка. Линии толщины 3 выглядят, как на представленном мною снимке. Представленый Вами рисунок (и только рисунок) не производит положительное впечатление о Вас.