Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1 семестр_1 / ЛА / Модуль3 / МП-12_Николаев_Олег_БДЗ3

.docx
Скачиваний:
36
Добавлен:
05.06.2015
Размер:
28.6 Кб
Скачать

Вариант 16

Привести уравнение кривой 2‐го порядка к каноническому виду с помощью поворота системы координат и параллельного переноса. Отметить в старой системе координат центр кривой С и направления осей новой системы координат Х’ и Y’. Построить кривую. Отметить на графике фокусы и директрисы.

%функция округляет число до целого, если оно является целым, но Матлаб не

%понимает этого

function x=rnd(x)

if(abs(x-round(x))<1e-10)

x=round(x);

end

end

%функция осуществляет сдвиг на dx по оси х, сдвиг на dy по сои у

%и поворот на угол phi

function [x,y]=phirotate(x0,y0,phi,dx,dy)

x=dx+x0*cos(phi)+y0*sin(phi);

y=dy+y0*cos(phi)-x0*sin(phi);

end

А)

grid on;hold on;axis equal;

%коэффициенты в старой СК

a=5;b=6;c=5;d=-16;e=-16;f=-16;

%угол поворота СК

phi=acot((a-c)/b)/2;

%коэффициенты в новой СК

u=rnd(a*cos(phi)^2+b*cos(phi)*sin(phi)+c*sin(phi)^2);

v=rnd(a*sin(phi)^2-b*sin(phi)*cos(phi)+c*cos(phi)^2);

p=rnd(d*cos(phi)+e*sin(phi));

q=rnd(e*cos(phi)-d*sin(phi));

%сдвиг на dx,dy

dx=rnd(-p/(2*u));

dy=rnd(-q/(2*v));

%число в правой части уравнения

H=rnd(u*dx^2+v*dy^2-f);

%отметим центр кривой C

[x,y]=phirotate(-dx,-dy,phi,dx,dy);

plot(x,y,'*r');

text(x+0.5,y,'C');

x=[-10 10];y=[0 0];

plot(x,y,'k');plot(y,x,'k');

[x,y]=phirotate(x,y,phi,dx,dy);

plot(x,y,'r');

x=[0 0];y=[-10 10];

[x,y]=phirotate(x,y,phi,dx,dy);

plot(x,y,'r');

%вычисляем знаменатели в каноническом уравнении

A=H/u;B=H/v;

syms x y;

[x,y]=phirotate(x,y,phi,-dx,-dy);

ezplot(x^2/A+y^2/B-1);

%отметим фокусы

c=sqrt(B-A);

[x,y]=phirotate(-c,0,phi,dx,dy);

plot(x,y,'*k');

plot(y,x,'*k');

text(x+0.4,y,'F_1');

text(y+0.5,x,'F_2');

%построим директрисы

[x,y]=phirotate(B/c,[-10 10],phi,dx,dy);

plot(x,y);

[x,y]=phirotate(-B/c,[-10 10],phi,-dx,-dy);

plot(x,y);

title('x^2/4+y^2/16=1');

Б)

grid on;hold on;axis equal;

%коэффициенты в старой СК

a=9;b=-12;c=4;d=0;e=0;f=-1;

%угол поворота СК

phi=acot((a-c)/b)/2;

%коэффициенты в новой СК

u=rnd(a*cos(phi)^2+b*cos(phi)*sin(phi)+c*sin(phi)^2);

v=rnd(a*sin(phi)^2-b*sin(phi)*cos(phi)+c*cos(phi)^2);

p=rnd(d*cos(phi)+e*sin(phi));

q=rnd(e*cos(phi)-d*sin(phi));

%отметим центр кривой C

[x,y]=phirotate(0,0,phi,0,0);

plot(x,y,'*r');

text(x+0.5,y,'C');

x=[-10 10];y=[0 0];

plot(x,y,'k');plot(y,x,'k');

[x,y]=phirotate(x,y,phi,0,0);

plot(x,y,'r');

x=[0 0];y=[-10 10];

[x,y]=phirotate(x,y,phi,0,0);

plot(x,y,'r');

%вычисляем знаменатели в каноническом уравнении

A=1/13;

syms x y;

[x,y]=phirotate(x,y,phi,0,0);

ezplot(13*x^2-1);

%отметим фокусы

c=1/13;

[x,y]=phirotate(-c,0,phi,0,0);

plot(x,y,'*k');

plot(y,x,'*k');

text(x+0.4,y,'F_1');

text(y+0.5,x,'F_2');

%построим директрисы

[x,y]=phirotate(A/c,[-10 10],phi,0,0);

plot(x,y,'g');

[x,y]=phirotate(-A/c,[-10 10],phi,0,0);

plot(x,y,'g');

title('x^2/(1/13)+0*y^2=1');

Соседние файлы в папке Модуль3