Matlab_Otchet_ 1_Исенев
.docФедеральное агентство связи
Федеральное государственное образовательное бюджетное
учреждение высшего профессионального образования
«Сибирский государственный университет телекоммуникаций
и информатики»
Кафедра вычислительных систем
Отчет по лабораторной работе №1:
«Работа в командном окне системы MatLAB»
выполнил: студент гр. РИ-27
Исенев Е.В.
проверил: проф. Рабинович Е.В.
Новосибирск, 2014 г
Цель работы
Целью данной лабораторной работы является ознакомление с основами работы в среде MatLAB: изучение типов используемых данных, работа с массивами, построение графиков и т. д.
Ход работы
-
Графически и при помощи функций найти пересечение двух кривых:
y = x2 – 5x + 3 и y = 7x – 4.
Выполнение задачи сводится к решению системы уравнений с двумя неизвестными.
В среде MatLAB для решения системы уравнений используется функция fsolve.
Результат вычислений:
x1 = 0.6148
y1 = 0.3038
x2 = 11.3852
y2 = 75.6962
Код программы представлен в приложении А.
На графике (рис.1) видно, что решением системы уравнений являются две точки пересечения графиков (график строится с помощью функции plot).
Рисунок 1- Графики функций и их общие точки
-
Графически и при помощи функций найти точку экстремума функции:
y = (x+2)(x-4);
Из леммы Ферма следует: пусть точка является точкой экстремума функции, определенной в некоторой окрестности этой точки. Тогда либо производная в этой точке не существует, либо равна нулю.
Парабола имеет одну точку экстремума - точку минимума (код программы представлен в приложении Б). Результат задания изображен на рисунке 2.
Функция y=(x+2)(x-4) имеет минимум при x=1. Минимальное значение функции равно -9.
Рисунок 2 - График функции и точка минимума
-
Дан треугольник ABC: A(-1;-2), B(-1;4), C(5;4). Найти координаты основания перпендикуляра, опущенного из точки B на сторону AC.
Выполнение задачи сводится к нахождению уравнений двух прямых по данным точкам и точки пересечения графиков этих прямых. Для решения задачи была использованы формулы из аналитической геометрии: каноническое уравнение прямой, уравнение прямой на плоскости (код программы представлен в приложении В).
Программа ищет координаты основания высоты (2,1), проведенной к стороне АС и строит график. Полученный график изображен на рисунке 3.
Результат вычислений:
Координаты основания высоты (точка D):
x0 = 2, y0 = 1
Рисунок 3 - Графики двух прямых и точки пересечения (основания высоты)
4. Графически и при помощи функций найти основание перпендикуляра, опущенного из точки A(3;10) на окружность радиуса 4, с центром в начале координат.
Данное задание схоже с предыдущим. Для его выполнения необходимо построить графики окружности, задаваемой параметрически и прямой. Точки пересечения находятся аналитически с помощью функции fsolve и отмечаются на графике (рисунке 4). Код программы представлен в приложении Г.
Результаты вычислений:
Координаты основания перпендикуляра:
x4 = 1.1494
y4 = 3.8313
Рисунок 4 - Графики функций и точек
5. На графике функции y = (5+x)(5-x) определить точки, касательная в которых имеет угол наклона.
На графике (рис. 5) отмечена точка, в которых касательная к графику имеет угол наклона 45°.
Результаты:
Точка касания:
x0 = -0.5000
y0 = 24.7500
Касательная в точке (-0.5000, 24.7500) имеет требуемый угол наклона 45°
Так как данная функция непрерывна и имеет производную во всех точках, то возможно провести касательную в любой ее точке, поскольку тангенс угла наклона определен на всей числовой оси. Код программы представлен в приложении Д.
Рисунок 5 - Касательная к графику функции y = (5+x)(5-x), имеющая угол наклона 45°
Вывод
Данная работа состояла из пяти заданий, носящих в большей степени ознакомительный характер, но уже после их выполнения можно сделать определенные выводы.
Первая поставленная задача была успешно решена: все точки пересечений двух графиков были найдены. Способ выбранный для решения данной системы уравнений оказался приемлемым и достаточным для нахождения всех имеющихся корней.
Для решения второй задачи потребовались минимальные затраты ресурсов, потому что она была решена с помощью стандартных функций. Задача нахождения точки экстремума была успешно выполнена.
Третья задача оказалось немного сложнее предыдущих. Изобразить на одном графике несколько функций оказалось не так-то просто. Но в конце концов, основная задача была выполнена, т. е найдена нужная точка (основание перпендикуляра).
После выполнения четвертой задачи были аналитически и графически найдены необходимые точки. Аналитический результат верный, но на графике он отображается некорректно. Для получения более точного(корректного) решения задачи введены ограничения по осям xlim и ylim.
Пятая задача также была также успешно решена. Были определены точки, касательная в которых имеет угол наклона. При ее решении особых проблем не возникло.
После выполнения данной лабораторной работы были получены первичные навыки работы в среде MatLAB, которые помогут в дальнейшей работе.
Приложение А
x=-10:15;
y1=x.^2-5*x+3;
y2=7*x-4;
plot(x,y1,'r',x,y2,'b')
title('Задание 1. График пересечения кривых y1 и y2')
legend('y1=x^2-5x+3','y2=7x-4')
xlabel('x')
ylabel('y')
grid
x1=fsolve('x.^2-5*x+3-7*x+4',0,optimset('Display','off'))
y1=7*x1-4
x2=fsolve('x.^2-5*x+3-7*x+4',10,optimset('Display','off'))
y2=7*x2-4
Приложение Б
xmin = fminbnd('(x+2)*(x-4)',-80,80)
X=-80:1:80;
Y=(X+2).*(X-4);
plot(X,Y,xmin,(xmin+2).*(xmin-4),'ko','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',5);
text(xmin+3, -210,'xmin=1, ymin=-9','FontSize',10);
grid
Приложение В
syms X AC BD;
x_a = -1;
y_a = -2;
x_b = -1;
y_b = 4;
x_c = 5;
y_c = 4;
% построение треугольника АВС
x=[x_a x_b x_c x_a]
y=[y_a y_b y_c y_a]
plot (x,y)
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_b x0], [y_b y0], 'r')% построение высоты
hold on
plot(x0, y0,'ko','MarkerFaceColor','g')
%обозначение вершин
set(gca,'FontName','Arial','FontSize',10);
text (x0+0.2,y0,'D');
text (x_a,y_a-0.2,'A');
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);
Приложение Г
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,'ko','MarkerFaceColor','g') %точка (3;10)
x=[x1 x3];
y=[y1 y3];
plot(x,y,'r') % построение прямой
plot(x4,y4, 'ko','MarkerFaceColor','m') % искомая точка
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([-6 11 -6 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)');
Приложение Д
alpha=input('Vvedite ugol naklona : ');
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, 'ko','MarkerFaceColor','m')
xlabel('Ось X');
ylabel('Ось Y');
title('Задание 5. Нахождение точки, где касательная имеет угол наклона')
grid on
axis([-10 10 0 35])
legend('Заданная функция','Касательная','Точка касания',2);
end