3D график поверхностей

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

Модератор: Admin

Виталий Ф.
Сообщения: 10
Зарегистрирован: Вт янв 22, 2008 10:05 pm

3D график поверхностей

Сообщение Виталий Ф. » Ср янв 23, 2008 1:19 am

Задача состоит в том что бы построить график z=f1(x,y) ограниченой другой функцией z=f2(x,y), я пробовал решать это задачу спомощь функции ContourPlot3D

вот сам расчет

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

f1 := (-8 + 6 x^2 + 3 x^4 + 4 x y)/(-8 + 6 x^2 + 4 x y) == z;
f2 := 12 - 24 x^2 - 9 x^4 - 12 x y - y^2;
G := Piecewise[{{f1, (-8 + 6 x^2 + 3 x^4 + 4 x y)/(-8 + 6 x^2 + 4 x y) < 12 - 24 x^2 - 9 x^4 - 12 x y - y^2}}]
ContourPlot3D[G, {x, -2, 2}, {y, -12, 12}, {z, 0, 2}]


но ничего не выходит, просто выдает пустые кординатные оси.

Эта же задача я аналогично решил в пакете Maple

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

>f1 := (-8+6*x^2+3*x^4+4*x*y)/(-8+6*x^2+4*x*y)-z = 0;
>f2 := 12-24*x^2-9*x^4-12*x*y-y^2 = z;
>G := piecewise(lhs(f1) < lhs(f2), lhs(f1)) = 0:
>plots[implicitplot3d](G, x = -2 .. 2, y = -12 .. 12, z = 0 .. 1.1, axes = box, numpoints = 20000)


может кто знает как решится эту задачу

Zlog
Сообщения: 82
Зарегистрирован: Сб июл 15, 2006 11:42 am
Откуда: из "Баголовка"
Контактная информация:

Re: 3D график поверхностей

Сообщение Zlog » Ср янв 23, 2008 8:01 pm

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

f1[x_,y_]:=(-8+6*x^2+3*x^4+4*x*y)/(-8+6*x^2+4*x*y);
f2[x_,y_]:=12-24*x^2-9*x^4-12*x*y-y^2;

RegionPlot3D[f1[x,y]<f2[x,y]&&f1[x,y]>z,{x,-2,2},{y,-12,12},{z,0,1.1}]


Так?

Виталий Ф.
Сообщения: 10
Зарегистрирован: Вт янв 22, 2008 10:05 pm

Re: 3D график поверхностей

Сообщение Виталий Ф. » Ср янв 23, 2008 8:58 pm

Zlog писал(а):

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

f1[x_,y_]:=(-8+6*x^2+3*x^4+4*x*y)/(-8+6*x^2+4*x*y);
f2[x_,y_]:=12-24*x^2-9*x^4-12*x*y-y^2;

RegionPlot3D[f1[x,y]<f2[x,y]&&f1[x,y]>z,{x,-2,2},{y,-12,12},{z,0,1.1}]


Так?


да, вроде так, спасибо!

Маленький вопросик почему в начале в функции, пеперменные задаються с знаком "_"

Zlog
Сообщения: 82
Зарегистрирован: Сб июл 15, 2006 11:42 am
Откуда: из "Баголовка"
Контактная информация:

Re: 3D график поверхностей

Сообщение Zlog » Чт янв 24, 2008 4:07 pm

Виталий Ф. писал(а): Маленький вопросик почему в начале в функции, пеперменные задаються с знаком "_"

Это такая особенность в "Математике" при объявлении функций пользователя.

Виталий Ф.
Сообщения: 10
Зарегистрирован: Вт янв 22, 2008 10:05 pm

Re: 3D график поверхностей

Сообщение Виталий Ф. » Чт янв 24, 2008 6:45 pm

спасибо еще раз в этом разобрался,

но возник вопрос сама команда рисует поверхности RegionPlot3D и зарисовует образно говоря все "дырки" в этой поверхности, например


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

RegionPlot3D[(24 - 48 x^2 - 18 x^4 - 24 x y - 2 y^2)/(
   24 - 48 x^2 - 24 x y + 3 x^3 y - 2 y^2) <
   12 - 24 x^2 - 9 x^4 - 12 x y - y^2 && (
   24 - 48 x^2 - 18 x^4 - 24 x y - 2 y^2)/(
   24 - 48 x^2 - 24 x y + 3 x^3 y - 2 y^2) > z,
{x, -2, 2}, {y, -12, 12}, {z, 0, 1},
PlotStyle -> RGBColor[1, 0, 0], BoundaryStyle -> RGBColor[0, 1, 1]]


контуры этих дырок я показую командлой BoundaryStyle, но хотелось бы что бы эти дырки не зарисовывались как это сделать?

Zlog
Сообщения: 82
Зарегистрирован: Сб июл 15, 2006 11:42 am
Откуда: из "Баголовка"
Контактная информация:

Re: 3D график поверхностей

Сообщение Zlog » Сб янв 26, 2008 2:30 pm

Посмотрите функцию Plot3D с опцией RegionFunction. Может быть, так получится.

Zlog
Сообщения: 82
Зарегистрирован: Сб июл 15, 2006 11:42 am
Откуда: из "Баголовка"
Контактная информация:

Сообщение Zlog » Пн янв 28, 2008 12:44 pm

И вот ещё как можно:

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

RegionPlot3D[(24-48 x^2-18 x^4-24 x y-2 y^2)/(24-48 x^2-24 x y+3 x^3 y-2 y^2)<12-24 x^2-9 x^4-12 x y-y^2&&(24-48 x^2-18 x^4-24 x y-2 y^2)/(24-48 x^2-24 x y+3 x^3 y-2 y^2)>z,{x,-2,2},{y,-12,12},{z,0,1}, PlotStyle->{RGBColor[1,0,0],Directive[Opacity[0.0],Red]},Mesh -> None]