1 семестр_1 / ЛА / Модуль3 / МП-12_Николаев_Олег_lab1_m3
.docxОтчет к упражнению 1
1. Наберите в командном окне « help cart2pol »
help cart2pol
С помощью команды «[phi, r]=cart2pol(3,3)» мы можем получить полярные координаты некоторой точки с декартовыми (Cartesian - картезианскими) координатами (3;3).
[phi, r]=cart2pol(3,3)
phi =
0.7854
r =
4.2426
r=sqrt(3^2+3^2)
r =
4.2426
phi=pi/4
phi =
0.7854
Выводы:
Действительно, у точки с координатами (3,3) расстояние до начала координат
, а угол отклонения .
2. Наберите в командном окне « help pol2cart»
help pol2cart
С помощью команды «[x,y]=pol2cart(-pi/4, 2*sqrt(2))» мы можем получить декартовые координаты некоторой точки с полярным углом и радиусом длины . Мы должны будем получить декартовые координаты (2, -2).
[x,y]=pol2cart(-pi/4,2*sqrt(2))
x =
2
y =
-2
Выводы:
Как и следовало ожидать точка с полярными координатами будет располагаться в четвертом квадранте координатной плоскости.
Отчет к упражнению 2
Перевести полярные уравнения однолепестковых роз в декартовую систему координат, построить графики с помощью функций «ezplot» и «plot» в декартовых координатах, прокомментировать полученные результаты.
Все графики – окружности.
grid on;hold on;axis equal;
xlabel('x'),ylabel('y');
phi=0:0.1:2*pi;
r=4*sin(phi);
[x,y]=pol2cart(phi,r);
plot(x,y,'r');
ezplot('x.^2+y.^2-4.*y');
Оба графика одинаковые.
grid on;hold on;axis equal;
xlabel('x'),ylabel('y');
phi=0:0.1:2*pi;
r=-9*sin(phi);
[x,y]=pol2cart(phi,r);
plot(x,y,'r');
ezplot('x.^2+y.^2+9.*y',[-10 10]);
Оба графика одинаковые.
grid on;hold on;axis equal;
xlabel('x'),ylabel('y');
phi=0:0.1:2*pi;
r=2*cos(phi);
[x,y]=pol2cart(phi,r);
plot(x,y,'r');
ezplot('x.^2+y.^2-2.*x',[-10 10]);
Оба графика одинаковые.
grid on;hold on;axis equal;
xlabel('x'),ylabel('y');
phi=0:0.1:2*pi;
r=-4*cos(phi);
[x,y]=pol2cart(phi,r);
plot(x,y,'r');
ezplot('x.^2+y.^2+4.*x',[-10 10]);
Оба графика одинаковые.
Отчет к упражнению 3
Напишите подобную программу, для . Используйте циклы for end; if end.
hold on;grid on;axis equal;
n=4;a=1;
for phi=0:pi/1000:2*pi;
r=a*cos(n*phi);
if (r>=0)
polar(phi, r,'*r');
end;
end;
Отчет к упражнению 4
Построить графики в полярных координатах с помощью функции «polar» . Сравните полученные результаты с результатами упражнения 2.
phi=0:pi/100:2*pi;
r=4*sin(phi);
polar(phi,r,'*r');
phi=0:pi/100:2*pi;
r=-9*sin(phi);
polar(phi,r,'*r');
phi=0:pi/100:2*pi;
r=2*cos(phi);
polar(phi,r,'*r');
phi=0:pi/100:2*pi;
r=-4*cos(phi);
polar(phi,r,'*r');
Отчет к упражнению 5
Построить график функции в декартовой системе координат с помощью функции «plot». Перейти к полярной системе координат, построить график в полярных координатах с помощью функции «polar». Сравнить, прокомментировать полученные результаты.
phi=0:pi/100:2*pi;
x=cos(phi);y=sin(phi);
plot(x,y,'r');
grid on;axis equal;
phi=0:pi/100:2*pi;
x=cos(phi);y=sin(phi);
[phi,r]=cart2pol(x,y);
polar(phi,r,'r');
grid on;axis equal;
Графики одинаковы.
Отчет к упражнению 6
Создать функцию shift_rotate в отдельном м-файле shift_rotate.m, с помощью которой производится поворот графика функции на k радиан по часовой стрелке, а также сдвиг на относительно оси абсцисс и на относительно оси ординат. Переменные , , должны являться аргументами этой функции. Проверьте функцию на особенных значениях. Например, очевидно, что при достаточно небольшом поворот осей координат будет практически незаметен.
Сначала рассчитаем формулу для у1:
syms x y x1 y1 alpha xm ym;
x=xm+x1*cos(alpha)-y1*sin(alpha);
y=ym+x1*sin(alpha)+y1*cos(alpha);
f=y+3.*x-2;
solve(f,'y1')
ans =
(ym+x1*sin(alpha)+3*xm+3*x1*cos(alpha)-2)/(-cos(alpha)+3*sin(alpha))
Напишем скрипт shift_rotate.m:
%функция совершает поворот на угол k и сдвиг на xm,ym
function y1=shift_rotate(k,xm,ym)
figure;hold on;grid on;axis equal;
x=-10:1:10;
y=-3*x+2;
plot(x,y,'g','LineWidth',2)
x1=x+xm;
y1=(ym+x1*sin(k)+3*xm+3*x1*cos(k)-2)/(-cos(k)+3*sin(k));
plot(x1,y1,'b','LineWidth',2);
legend ('y','y1-new')
line([-10,0;10,0],[0,10;0,-10],'Color','black','LineWidth',2)
axis([-10 10 -10 10])
end
Запустим его:
shift_rotate(pi/3,1,2);
Задание на «5»: упражнение 7.
Включить в отчет графики: спираль Архимеда, логарифмическая спираль, лемниската Бернулли, улитка Паскаля, астроида, эвольвента окружности, циклоида, полукубическая парабола, петлевая парабола, декартов лист, локон Аньези. Выведите полярное уравнение эпициклодиды в случае a=b (оно тогда будет называться кардиоидой).
phi=0:pi/100:20*pi;
a=2;
r=a*phi;
polar(phi,r)
title('Спираль Архимеда');
phi=0:pi/100:2*pi;
a=2;
r=a.^phi;
polar(phi,r);
title('Логарифмическая спираль (a>1)');
phi=0:pi/100:2*pi;
a=0.5;
r=a.^phi;
polar(phi,r);
title(' Логарифмическая спираль (0<a<1)');
phi=0:pi/100:2*pi;
a=2;
r=sqrt(2*a^2*cos(2*phi));
polar(phi,r);
title('Лемниската Бернулли');
hold on;
a=2;b=2;
phi=0:pi/100:2*pi;
r=2*a*cos(phi)+b;
polar(phi, r,'r');
r=2*a*cos(phi)-b;
polar(phi, r,'r');
grid on; axis equal
title('Улитка Паскаля');
hold on;
phi=0:pi/30:2*pi;
a=2;
x=a*(cos(phi)).^3; y=a*(sin(phi)).^3;
plot(x,y);
grid on; axis equal
title('Астроида');
hold on;
t=0:pi/30:pi;
a=2;
x=a.*(cos(t)+t.*sin(t)); y=a.*(sin(t)-t.*cos(t));
plot(x,y)
grid on;axis equal;
title('Эвольвента окружности');
hold on;
t=-4*pi:pi/30:4*pi;
a=2;
x=a.*(t-sin(t)); y=a.*(1-cos(t));
plot(x,y)
grid on;axis equal;
title('Циклоида');
hold on;
a=2;
x=[-10:0.1:10];
y=(a*x.^2).^(1/3);
plot(x,y)
grid on;axis equal;
title('Полукубическая парабола');
hold on;
a=3;
syms x y;
ezplot(a*y^2-x*(x-a)^2);
grid on;axis equal;
title('Петлевая парабола');
hold on;
a=2;
syms x y
ezplot(x^3+y^3-3*a*x*y)
grid on;axis equal;
title('Декартов лист');
hold on;
a=2;
x=[-10:0.01:10];
y=8*a^3./(x.^2+4*a^2);
plot(x,y);
grid on;axis equal;
title('Локон Аньези');
hold on;
a=2;
phi=0:pi/30:2*pi;
r=2*a*(1-cos(phi));
polar(phi,r);
grid on;axis equal;
title('Кардиоида');