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

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

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

Отчет к упражнению 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('Кардиоида');

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