Вычисление определенных интегралов в среде MatLAB

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

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

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

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

Факультет Автоматики и Вычислительной Техники

Кафедра Систем Сбора и Обработки Данных

Дисциплина «Теория информационных процессов и систем»

Лабораторная работа № 3

Вычисление определенных интегралов в среде MatLAB

Студент:                                                                            Преподаватель:

Осадчая Д.А.                                                                     проф. Рабинович Е.В.

Группа: АТ-63

Новосибирск, 2009

Цель работы

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

1)  Вычисление значения производной в заданной точке.

Листинг m-файла для вычисления значения производной в заданной точке:

function[] = z1(f,x0)

syms x y y_dif

switch(f)

case ('exp')

y=exp(x);

case ('log')

y=log(x);

case ('stepen')

a=input('Введите основание: ')

y=a^x;

otherwise

disp('Неизвестный вид функции!')

break

end

y_dif=diff(y)

C=inline(y_dif);

res=C(x0)% значение производной

Результат выполнения функции:

Экспоненциальная функция:

z1('log',4)

y_dif =1/x

res =0.2500

Логарифмическая функция:

z1('exp',2)

y_dif =exp(x)

res = 7.3891

Степенная функция:

z1('stepen',2)

Введите основание: 2

a =2

y_dif =2^x*log(2)

res =2.7726

2)  Вычисление площади фигуры, ограниченной полиномом второй степени.

Листинг m-файла для вычисления площади фигуры:

function[square]=z2(a,b,c,left,right)

x =  left:0.01:right;

y = a*(x.*x)+b*x+c;

S = trapz(x, abs(y));

hold on;

x1 = left-1:0.01:right+1;

y1 = a*(x1.*x1)+b*x1+c;

plot (x1,y1, 'r');

stem (x,y);

set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),

title('Фигура, ограниченная полиномом второго порядка')

set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),

legend('Функция y(x)','Фигура площадью S',2);

set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),

xlabel('X');

ylabel('Y');

grid;

square = S

Результат выполнения функции:

s1=z2(1,1,5,-1,0.5)

s1 = 7.5000

Рис. 1. Фигура, ограниченная графиком функции y= x2+x+5 и прямыми x=-1, x=0.5

3)  Вычисление производной полинома второй степени.

Листинг m-файла для вычисления производной полинома 2-ой степени и построения графиков полинома и его производной:

function z3(a,b,c)

x = -5:1:5;

y = a*(x.*x)+b*x+c;

plot(x,y)

hold on

p=[a b c];

q=polyder(p);

y1=q(1).*x+q(2);

plot(x,y1,'r')

set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),

legend('Полином второго порядка','Его производная',2)

set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),

title('Нахождение производной полинома второго порядка')

grid

syms x y y_d

y = a*x.^2+b*x+c;

y_dif= diff(y)

Результат выполнения функции:

z3(1,2,4)

y_dif =2*x+2

Рис. 2. График функции y= x2+2x+4 и ее производной y=2x+2

4)  Нахождение экстремумов полиномов  3-го  порядка

Листинг m-файла для нахождения экстремума полинома 3-го порядка:

function z4(a,b,c,d)

x=-20:0.1:20;

y=a*x.^3+b*x.^2+c*x+d;

plot(x,y)

set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),

title('Нахождение экстремумов полинома');

xlabel('Ось Х')

ylabel('Ось Y')

grid

hold on

p=[a b c d];

q=polyder(p);

x0=roots(q)

y0=a*x0.^3+b*x0.^2+c*x0+d

plot(x0,y0,'rx')

x1=[-20 20];

y1=a*x1.^3+b*x1.^2+c*x1+d;

plot(x1,y1,'rx')

set(gca, 'FontName', 'Times New Roman Cyr', 'FontSize' ,12),

legend('Полином третьей степени', 'Экстремумы полинома', 2)

Результат выполнения функции:

z4(1,2,4,10)

x0 =-0.6667 + 0.9428i           -0.6667 - 0.9428i

y0 =7.9259 + 1.6761i             7.9259 - 1.6761i

Рис. 3. График функции y=x3+2x2+4x+10 и ее экстремумы.

5)  Вычисление интеграла заданных функций.

Листинг m-файла для вычисления интеграла:

function z5(f,left,right)

x=left:0.01:right;

switch(f)

case ('exp')

y=exp(x);

case ('log')

y=log(x);

case ('stepen')

a=input('Введите основание: ');

y=a.^x;

otherwise

disp('Неизвестная функция!')

break

end

S = trapz(x, abs(y))

Результат выполнения функции:

Логарифмическая функция:

z5('log',1,2)

S=0.3863

Экспоненциальная функция:

z5('exp',1,2)

S=4.6708

Степенная функция:

z5('stepen',-1,2)

Введите основание:4

S=11.3614

6)  Вычисление скорости и ускорения  физического тела, которое движется по кривой описываемой полиномом третьей степени, в заданной точке.

Листинг m-файла для вычисления скорости и ускорения физического тела:

function z6(a,b,c,d,x0)

y0=a*x0.^3+b*x0.^2+c*x0+d;

p=[a b c d];

v=polyder(p); % уравнение скорости

v0=v(1)*x0.^2+v(2)*x0+v(3)

asc=polyder(v); % уравнение ускорения

a0=asc(1)*x0+asc(2)

x=-10:0.1:10;

y=a*x.^3+b*x.^2+c*x+d;

v=v(1)*x.^2+v(2)*x+v(3);

asc=asc(1)*x+asc(2);

subplot(211)

plot(x,y)

hold on

plot(x0,y0,'rx')

title('График траектории')

xlabel('X'), ylabel('S'), grid

legend('Траектория','Заданная точка',1)

subplot(223)

plot(x,v)

hold on

plot(x0,v0,'rx')

title('График скорости')

xlabel('X'), ylabel('v'), grid

legend('Скорость','Заданная точка',2)

subplot(224)

plot(x,asc)

hold on

plot(x0,a0,'rx')

title('График ускорения')

xlabel('X'), ylabel('a'), grid

legend('Ускорение','Заданная точка',2)

Результат выполнения функции:

z6(1,2,4,10,3)

v0 =43

a0 =22

Рис. 4. Графики траектории, скорости и ускорения физического тела, которое движется по кривой y=x3+2x2+4x+10 в точке x=3.

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

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