- •Оглавление
- •Задание на лабораторную работу
- •Задание 1. Нахождение точек пересечения двух кривых
- •Задание 2. Нахождение точки экстремума функции
- •Задание 3. Найти координаты оснований перпендикуляров
- •Задание 4. Основание перпендикуляра, опущенного из точки на окружность
- •Задание 5. Изобразить точки, касательная которых имеет угол наклона
- •Задание 6. Написать программу, которая строит график сферы или пирамиды по выбору пользователя
- •Задание 7. Написать программу, которая строит график прозрачного куба или конуса по выбору пользователя
- •Приложение б
- •Приложение в
- •Приложение г
- •Приложение д
- •Приложение е
- •Приложение ж
- •Приложение и
- •Приложение к
Приложение б
Листинг задания 2
subplot(211)
x=-3:0.5:5;
y=(x+2).*(x-4);
plot(x,y);
xlabel('x'),ylabel('y'),grid
title('Графикфункции y=(x+2)(x+4)')
x1=-10:10;
y1=diff((x1+2).*(x1-4));
subplot(212)
plot(-9:10,y1)
title('График производной функции y=(x+2)(x+4)')
xlabel('x'),ylabel('y'),grid
Приложение в
Листинг задания 3
symsXACBD;
syms X1 A1C BD;
x_a = -1;
x_a1 = 2;
y_a = -2;
y_a1 = 2;
x_b = -1;
y_b = 4;
x_c = 5;
y_c = 4;
% построение треугольника АВС
x=[x_ax_bx_cx_a]
y=[y_ay_by_cy_a]
plot (x,y)
holdon
% построение треугольника А1ВС
x1=[x_a1 x_bx_c x_a1]
y1=[y_a1 y_by_c y_a1]
plot (x1,y1)
hold on
k = (y_c-y_a)/(x_c-x_a) % коэффициентнаклонапрямой АС
AC = y_a + k*(X-x_a) % уравнение прямой АС (y-y0=k(x-x0))
BD = y_b - (1/k)*(X-x_b) % уравнение прямой, перпендикулярной АС и проходящей через точку В.
x0 = fsolve(inline(AC-BD) ,1,optimset('Display','off'))
y0 = y_a + k*(x0-x_a)
plot([x_bx0], [y_by0], 'r')% построение высоты
hold on
plot(x0, y0,'g+')
k1 = (y_c-y_a1)/(x_c-x_a1) % коэффициент наклона прямой АС
AC1 = y_a1 + k1*(X1-x_a1) % уравнение прямой АС (y-y0=k(x-x0))
BD1 = y_b - (1/k1)*(X1-x_b) % уравнение прямой, перпендикулярной АС и проходящей через точку В.
x01 = fsolve(inline(AC1-BD1), 1)
y01 = y_a1 + k1*(x01-x_a1)
plot([x_bx01], [y_by01], 'r')% построение высоты
hold on
plot(x01, y01,'g+')
%обозначениевершин
set(gca,'FontName','Arial','FontSize',10);
text (x0+0.2,y0,'D');
text (x01+0.2,y01,'H');
text (x_a,y_a-0.2,'A');
text (x_a1,y_a1-0.2,'A1');
text (x_b,y_b+0.2,'B');
text (x_c,y_c+0.2,'C');
axis ([-3 6 -3 6]);
xlabel('Ось X');
ylabel('Ось Y');
Title('Задание 3. Нахождение координат основания высоты треугольника')
grid on
legend('Треугольник АВС','ВысотаBD','Основание высоты',4);
Приложение г
Листинг задания 4
x1=0;
y1=0;
x2=3;
y2=0;
x3=3;
y3=10;
% нахождение координат основания перпендикуляра (x4; y4)
r12=sqrt(((x1-x2)^2)+((y1-y2)^2));
r23=sqrt(((x2-x3)^2)+((y2-y3)^2));
r13=sqrt(r12^2+r23^2);
r14=4;
x4=r14*r12/r13
y4=r14*r23/r13
%построение графика окружности
x=-4:0.1:4;
y=sqrt(16-x.*x);
plot(x,y)
hold on
y=-sqrt(16-x.*x);
plot(x,y)
plot(x3,y3,'xg') %точка (3;10)
x=[x1 x3];
y=[y1 y3];
plot(x,y,'r') % построение прямой
plot(x4,y4,'dc') % искомая точка
x=[x3 x2 x1];
y=[y3 y2 y1];
plot(x,y,'k')
x=[x4 x4 x1];
y=[y4 y1 y1];
plot(x,y,'k');
% оформление
axis([-4 11 -4 11])
title('Задание 4. Нахождение основания перпендикуляра');
xlabel('Ось x'); ylabel('Ось y');
legend('Окружность', 'радиуса 4','Точка A(3;10)', 'Перпендикуляр', 'Точка касания');
grid
text (x1-1,y1-0.5,'(0; 0)');
text (x2-1,y2-0.5,'(3; 0)');
text (x3,y3+0.5,'(3; 10)');
text (x4-1.5,y4+0.5,'(x; y)');
Приложение д
Листинг задания 5
alpha=input('Vvediteugolnaklona : ');
if (alpha==90)
k='Error! Print another angle!'
else
k=tan(alpha*pi/180);
syms x y yd
y=(5+x).*(5-x);
yd=diff(y)
x0=fzero(inline(yd-k),1)
y0=(5+x0)*(5-x0)
x_p=-10:0.1:10;
y_p=(5-x_p).*(5+x_p);
plot(x_p,y_p);
hold on
a=-10:0.1:10;
b=k*(a-x0)+y0;
plot(a,b,'r')
plot(x0,y0, 'xg')
xlabel('Ось X');
ylabel('Ось Y');
Title('Задание 5. Нахождение точки, где касательная имеет угол наклона')
gridon
axis([-10 10 0 35])
legend('Заданная функция','Касательная','Точка касания',2);
end
