close

Вход

Забыли?

вход по аккаунту

?

LabaLinal 3 2 (1)

код для вставкиСкачать
Лабораторный практикум 3.2. Кривые и поверхности второго порядка.
Кривые второго порядка
Упражнение 1. Создать 6 графических подобластей. В первой построить эллипс, a>b, отметить фокусы, директрисы, изобразить описывающий его прямоугольник, во второй области построить эллипс, в котором b>a, отметить фокусы, директрисы, далее гиперболу, сопряженную гиперболу, у гипербол построить асимптоты, отметить фокусы, директрисы
параболу, отметить фокус, директрису.
В шестой подобласти изобразить на одном графике эллипс, a>b и гиперболу, a>b.
figure
subplot(3,2,1), axis([-10 10 -10 10]), grid on, hold on syms x y
a=5;
b=3;
ezplot(x^2/a^2+y^2/b^2-1) line ([-a a],[-b -b],'Color','g');
line ([-a a],[b b],'Color','g');
line ([-a -a],[-b b],'Color','g');
line ([a a],[-b b],'Color','g');
line ([0 0],[-10 10],'Color','k');
line ([-10 10],[0 0],'Color','k');
c=(a^2-b^2)^(1/2);
e=c/a;
line ([-a/e -a/e],[-10 10],'Color','r');
line ([a/e a/e],[-10 10],'Color','r');
plot(-c,0,'*');
plot(c,0,'*');
text(-c,-1.5,'F_{1}');
text(c,-1.5,'F_{2}');
subplot(3,2,2), axis equal, axis([-10 10 -10 10]), grid on, hold on syms x y
a=3;
b=5;
ezplot(x^2/a^2+y^2/b^2-1) line ([-a a],[-b -b],'Color','b');
line ([-a a],[b b],'Color','b');
line ([-a -a],[-b b],'Color','b');
line ([a a],[-b b],'Color','b');
line ([0 0],[-10 10],'Color','k');
line ([-10 10],[0 0],'Color','k');
c=(b^2-a^2)^(1/2);
e=c/b;
line ([-10 10],[-b/e -b/e],'Color','r');
line ([-10 10],[b/e b/e],'Color','r');
plot(0,-c,'*');
plot(0,c,'*');
text(-1.5,-c,'F_{1}');
text(-1.5,c,'F_{2}');
subplot(3,2,3), axis equal, axis([-2 2 -2 2]), grid on, hold on syms x y
a=1;
b=1;
c=(a^2+b^2)^(1/2);
plot(-c,0,'*');
plot(c,0,'*');
text(-c,-1.5,'F_{1}');
text(c,-1.5,'F_{2}');
line ([0 0],[-10 10],'Color','k');
line ([-10 10],[0 0],'Color','k');
h=ezplot(x/a-y/b,[-10 10]);
set(h,'Color','r')
h=ezplot(x/a+y/b,[-10 10]);
set(h,'Color','r')
ezplot(x^2/a^2-y^2/b^2-1,[-10 10])
subplot(3,2,4), axis equal, axis([-2 2 -2 2]), grid on, hold on syms x y
a=1;
b=1;
c=(a^2+b^2)^(1/2);
plot(0,-c,'*');
plot(0,c,'*');
text(-1.5,-c,'F_{1}');
text(-1.5,c,'F_{2}');
line ([0 0],[-10 10],'Color','k');
line ([-10 10],[0 0],'Color','k');
h=ezplot(x/a-y/b,[-10 10]);
set(h,'Color','r')
h=ezplot(x/a+y/b,[-10 10]);
set(h,'Color','r')
ezplot(-x^2/a^2+y^2/b^2-1,[-10 10])
subplot(3,2,5), axis equal, axis([-2 2 -2 2]), grid on, hold on line ([0 0],[-10 10],'Color','k');
line ([-10 10],[0 0],'Color','k');
p=2;
f=p/2;
plot(f,0,'*');
text(c,-1.5,'F');
ezplot(y^2-2*p*x,[-10 10]);
subplot(3,2,6), axis equal, axis([-10 10 -10 10]), grid on, hold on line ([0 0],[-10 10],'Color','k');
line ([-10 10],[0 0],'Color','k');
a=4;
b=3;
h=ezplot(x^2/a^2+y^2/b^2-1,[-10 10]) set(h,'Color','r')
h=ezplot(x^2/a^2-y^2/b^2-1,[-10 10])
Упражнение 2. Для уравнения кривой второго порядка a*x^2+b*xy+c*y^2=1 реализовать m-функцию get_canonical, которая приводит уравнение данной кривой к каноническому виду
u*x^2+v*y^2=1, используя поворот осей координат на определенный угол. Таким образом, заголовок файла "get_canonical.m" будет выглядеть примерно так:
function [u,v,phi]= get_canonical (a,b,c)
Упражнение 3. Нарисовать кривую, заданную уравнением x^2+xy+2y^2=1.
С помощью реализованной ранее функции get_canonical привести уравнение данной кривой к каноническому виду, отметить фокусы, отобразить директрисы. Сравнить результат.
a=1;
b=1;
c=2;
[u,v,phi]=get_canonical(a,b,c)
ezplot('x^2+x*y+2*y^2-1')
hold on
grid on
a=(1/u)^(1/2)
b=(1/v)^(1/2)
c=(a^2-b^2)^(1/2)
[x,y]=shift_rotate(phi,c,0)
plot(x,y,'*m')
[x,y]=shift_rotate(phi,-c,0)
plot(x,y,'*m')
e=c/a;
dx=a/e;
dy=[-10:10]
[dx,dy]=shift_rotate(phi,-dx,dy)
plot(dx,dy,'g')
dx=a/e;
dy=[-10:10]
[dx,dy]=shift_rotate(phi,dx,dy)
plot(dx,dy,'g')
Упражнение 4.
Используя данную программу изобразите часть эллипсоида лежащего в первом октанте (x≥0, y≥0, z≥0) , верхнюю часть эллипсоида (z≥0), изобразите также эллипсоид в декартовых координатах, используя "meshgrid" и "mesh" или "plot3". Сравните полученные результаты.
a=1;
b=7;
c=3;
theta=(0:pi/1000:pi/2)';
phi=0:pi/100:pi/2;
x=a*cos(theta)*cos(phi);
y=b*cos(theta)*sin(phi);
z=c*sin(theta)*ones(size(phi));
figure(1)
mesh(x,y,z);
axis([-a-1 a+1 -b-1 b+1 -c-1 c+1])
xlabel('x'), ylabel('y'),zlabel('z')
theta=(0:pi/1000:pi/2)';
phi=0:pi/100:2*pi;
x=a*cos(theta)*cos(phi);
y=b*cos(theta)*sin(phi);
z=c*sin(theta)*ones(size(phi)
figure(2)
surf(x,y,z);
axis([-a-1 a+1 -b-1 b+1 -c-1 c+1])
xlabel('x'), ylabel('y'),zlabel('z')
theta=(0:pi/1000:pi*2)';
phi=0:pi/100:pi*2;
x=a*cos(theta)*cos(phi);
y=b*cos(theta)*sin(phi);
z=c*sin(theta)*ones(size(phi));
figure(3)
surf(x,y,z);
axis([-a-1 a+1 -b-1 b+1 -c-1 c+1])
xlabel('x'), ylabel('y'),zlabel('z')
Упражнение 5. Провести исследование поверхностей второго порядка методом сечений.
Однополосного гиперболоида, двуполостного гиперболоида, гиперболического параболоида, эллиптического параболоида.
Например, по однополостному параболоиду должно быть примерно такое исследование:
разбиваем графическое окно на несколько подобластей
в первом рисуем все, что касается сечений параллельных плоскости УОХ, во втором ... ZOX, в третьей ZOY
a=1;
b=1;
c=2;
u=(-1:0.02:2)';
phi=0:0.01*pi:2*pi;
X=a*cosh(u)*cos(phi);
Y=b*cosh(u)*sin(phi);
Z=c*sinh(u)*ones(size(phi));
figure()
mesh(X,Y,Z);
xlabel('x'), ylabel('y'),zlabel('z')
hold on
Z=ones(size(X));
mesh(X,Y,Z);
shading interp
xlabel('x'), ylabel('y'),zlabel('z')
[X,Z]=meshgrid(-4:0.1:4,-10:0.1:10);
Y=zeros(size(X));
d=surf(X, Y, Z)
shading interp
%Эллиптический параболоид
a=16;
b=16;
[X,Y]=meshgrid(-a:0.1:a,-b:0.1:b);
[X,z]=meshgrid(-a:0.1:a,-b:0.1:b);
Z=(X.^2/a^2 +Y.^2/b^2 );
figure()
mesh(X,Y,Z);
hold on
Z=ones(size(X));
mesh(X,Y,Z);
shading interp
xlabel('x'), ylabel('y'),zlabel('z')
[X,Z]=meshgrid(-16:0.1:16,0:0.1:2);
Y=ones(size(X))+4;
surf(X, Y, Z)
shading interp
[Y,Z]=meshgrid(-16:0.1:16,0:0.1:2);
X=ones(size(Y))+4;
surf(X, Y, Z)
shading interp
%Гиперболический параболоид
a=16;
b=16;
[X,Y]=meshgrid(-a:0.1:a,-b:0.1:b);
Z=(X.^2/a^2 -Y.^2/b^2 );
figure()
mesh(X,Y,Z);
xlabel('x'), ylabel('y'),zlabel('z')
hold on
Z=ones(size(X))-1;
mesh(X,Y,Z);
shading interp
xlabel('x'), ylabel('y'),zlabel('z')
[X,Z]=meshgrid(-16:0.1:16,-4:0.1:4);
Y=ones(size(X))+4;
surf(X, Y, Z)
shading interp
Упражнение 6. Сделать анимацию, вращения прямой вокруг параллельной ей прямой.
z=[-15,15];
x0=10;
y0=0;
phi=0:0.01*pi:2*pi;
[x,y]=shift_rotate(phi,x0,y0)
grid on, hold on, box on, axis equal ,view(23,45)
for i=1:1000
line([x(i) x(i)],[y(i) y(i)],[-10 10],'Color','g','LineWidth',3)
line([0 0],[0 0],[-10 10],'Color','m','LineWidth',5)
pause(0.01)
end
Документ
Категория
Рефераты
Просмотров
45
Размер файла
39 Кб
Теги
labalinal
1/--страниц
Пожаловаться на содержимое документа