русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ход работы


Дата добавления: 2015-06-12; просмотров: 2060; Нарушение авторских прав


Цель работы

Целью данной лабораторной работы является ознакомление с основами работы в среде 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- Графики функций и их общие точки

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

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

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

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

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

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

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



<== предыдущая лекция | следующая лекция ==>
Методи з постійним кроком | MATLAB R2013a


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.125 сек.