Работа в командном окне системы MatLab

Страницы работы

Содержание работы

Министерство Образования и Науки Российской Федерации

Новосибирский Государственный Технический Университет

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

по курсу "Теория информационных процессов и систем"

Работа в командном окне системы MatLab

Факультет: АВТФ                                                  Преподаватель: проф. Рабинович Е.В.

Группа: АТ-73

Студент: Пархомук Д.В.

г. Новосибирск

2010 г

Цель работы:

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

Задание 1

Нахождение точек пересечения двух кривых:            y = x2 – 5x + 3  и  y = 7x – 4.

Листинг m-файла p1.m

x=-10:15;

y1=x.^2-5*x+3;

y2=7*x-4;

plot(x,y1,'r',x,y2,'g')

title('Задание 1. График пересечения кривых y1 и y2')

legend('y1=x^2-5x+3','y2=7x-4')

xlabel('x')

ylabel('y')

grid

Рис. 1.1. Графическое решение задания 1 - нахождение пересечения двух кривых

      Рис. 1.2. Координаты первой точки пересечения, увеличенный масштаб.

            Рис. 1.3. Координаты второй точки пересечения, увеличенный масштаб.

Из графиков можно увидеть, что кривые y = x2 – 5x + 3  и  y = 7x – 4 пересекаются в двух точках с координатами (0.6; 0.5) и (11.35; 76.0)

Решение с помощью функции fsolve():

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

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

x1 =  0.6148

y1 =  0.3038

x2 =  11.3852

y2 =  75.6962

Задание 2

Нахождение точки экстремума функции y = (x+2)(x-4)

Листинг m-файла p2.m

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

                                    Рис. 2. Нахождение экстремума функции

Решение с помощью функции diff():

syms x y dif

y=(x+2).*(x-4)

dif=diff(y)

x0=fzero(inline(dif),1)

y0=(x0+2)*(x0-4)

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

Производная функции y = (x+2)(x-4):

dif = 2*x-2

Координаты экстремума функции:

x0 = 1

y0 = -9

>> 

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

Задание 3

Дан треугольник ABC: A(-1;-2), B(-1;4), C(5;4). Найти координаты основания перпендикуляра, опущенного из точки B на сторону AC.

Листинг m-файла p3.m

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,'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);

Рис. 3. Нахождение координат основания высоты BD  треугольника ABC

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

Угловой коэффициент прямой АС:

k =  1

Уравнение прямой АС:

AC = -1+X

Уравнение прямой BD:

BD = 3-X

Координаты основания высоты (точка D):

x0 = 2

y0 = 1

Задание 4

Нахождение основания перпендикуляра, опущенного из точки A(3;10) на окружность радиуса 4, с центром в начале координат.

Листинг m-файла p4.m

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)');

Рис. 4. Нахождение основания перпендикуляра, опущенного из точки А(3;10)

                    на окружность радиуса 4 с центром в начале координат.

Результаты вычислений: координаты основания перпендикуляра:

x4 =    1.1494

y4 =    3.8313

Задание 5

На графике функции y = (5+x)(5-x) определить точки, касательная в которых имеет угол наклона.

Листинг m-файла p5.m

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, 'xg')

    xlabel('Ось X');

    ylabel('Ось Y');

    Title('Задание 5. Нахождение точки, где касательная имеет угол наклона')

    grid on

    axis([-10 10 0 35])

    legend('Заданная функция','Касательная','Точка касания',2);

end

Рис. 5. Касательная к графику функции y = (5+x)(5-x), имеющая угол наклона 60°

Результаты:

>>Vvedite ugol naklona : 60

Точка касания:

x0 =   -0.8660

y0 =   24.2500

Касательная в точке (-0.8660, 24.2500) имеет требуемый угол наклона 60°

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

Выводы:

В ходе выполнения данной лабораторной работы я ознакомился с системой MatLab и некоторыми ее возможностями, а именно:

·  Ознакомление с командным окном системы MatLab

·  Построение графиков и их оформление (отображений осей, легенды, подписей).

·  Решение уравнений (графически и при помощи специальных функций)

Похожие материалы

Информация о работе