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

Matlab_Otchet_ 1_Исенев

.doc
Скачиваний:
41
Добавлен:
11.04.2015
Размер:
122.88 Кб
Скачать

Федеральное агентство связи

Федеральное государственное образовательное бюджетное

учреждение высшего профессионального образования

«Сибирский государственный университет телекоммуникаций

и информатики»

Кафедра вычислительных систем

Отчет по лабораторной работе №1:

«Работа в командном окне системы MatLAB»

выполнил: студент гр. РИ-27

Исенев Е.В.

проверил: проф. Рабинович Е.В.

Новосибирск, 2014 г

Цель работы

Целью данной лабораторной работы является ознакомление с основами работы в среде MatLAB: изучение типов используемых данных, работа с массивами, построение графиков и т. д.

Ход работы

  1. Графически и при помощи функций найти пересечение двух кривых:

y = x2 – 5x + 3 и y = 7x – 4.

Выполнение задачи сводится к решению системы уравнений с двумя неизвестными.

В среде MatLAB для решения системы уравнений используется функция fsolve.

Результат вычислений:

x1 = 0.6148

y1 = 0.3038

x2 = 11.3852

y2 = 75.6962

Код программы представлен в приложении А.

На графике (рис.1) видно, что решением системы уравнений являются две точки пересечения графиков (график строится с помощью функции plot).

Рисунок 1- Графики функций и их общие точки

  1. Графически и при помощи функций найти точку экстремума функции:

y = (x+2)(x-4);

Из леммы Ферма следует: пусть точка является точкой экстремума функции, определенной в некоторой окрестности этой точки. Тогда либо производная в этой точке не существует, либо равна нулю.

Парабола имеет одну точку экстремума - точку минимума (код программы представлен в приложении Б). Результат задания изображен на рисунке 2.

Функция y=(x+2)(x-4) имеет минимум при x=1. Минимальное значение функции равно -9.

Рисунок 2 - График функции и точка минимума

  1. Дан треугольник 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

13

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]