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

sss / Задание для МП_11,17,П_12 / учет успеваемости_к_20_02_12 / МП-11_МА / 03_Пахомкин Иван практикум 1 (второй семестр)

.doc
Скачиваний:
16
Добавлен:
05.06.2015
Размер:
62.98 Кб
Скачать

Упражнение 2

Вычислить определённые интегралы в символьном виде

а)

syms x

f=sym('x*cos(x^2)')

syms pi

I=int(f,x,0,pi/2)

I =sin(pi^2/4)/2

б)

f=sym('sqrt(1-x^2)')

I=int(f,x,-1,1)

I =pi/2

в)

syms x

f=sym('x*exp(3*x)')

I=int(f,x,0,1)

I =(2*exp(3))/9 + 1/9

Упражнение 3

Создать М-функции, вычисляющие значения интегральных сумм на отрезке с равномерным разбиениемна отрезков

a) левом

Сам М-файл:

function [summa] = integrsum (f,a,b,n)

% интегральная сумма

% f - функция, которую исследуем

% a,b - соответственно верхний и нижный пределы

% n - разбиение

summa = 0;

deltaX=(b-a)/n;

% deltaX - длин отрезка разбиения

for i = 1:n

summa= summa+(feval(f,(b-deltaX*i)))*deltaX;

end

end

б) правом

function [summa] = integrsum (f,a,b,n)

% интегральная сумма

% f - функция, которую исследуем

% a,b - соответственно верхний и нижный пределы

% n - разбиение

summa = 0;

deltaX=(b-a)/n;

% deltaX - длин отрезка разбиения

for i = 1:n

summa= summa+(feval(f,(a+deltaX*i)))*deltaX;

end

end

Дальше я считаю интегральные суммы с разными разбиениями (5,10,100 и 1000 соответственно) :

1) n=5

f=@(x) x+1;

s1=integrsum(f,0,5,5)

s1 =15

2) n=10

s2=integrsum(f,0,5,10)

s2 =16.2500

3)n=100

s3=integrsum(f,0,5,100)

s3 =17.3750

4)n=1000

s4=integrsum(f,0,5,1000)

s4 =17.4875

Вывод: чем больше мы берём разбиение, тем точнее мы вычисляем площадь фигуры, ограниченной графиком функции , прямыми x=a, x=b, y=0.

Вычислив интеграл =17,5 значения, полученные М-файлом ( с n=1000), совпали.

Упражнение 4

Создать М-функции, вычисляющие значения верхних и нижних сумм Дарбу на отрезке с равномерным разбиением на отрезков. Проверить работу М-функции для функции на отрезке при разбиении его на два равных элемента.

М-file

function SummDarbu=SummDarbu(fname,a,b,n)

% SummDarbu - нижняя сумма Дарбу

deltaX=(b-a)/n;

S=0;

x1=a;

for k=1:1:n;

x2=x1+deltaX;

m=fminbnd(fname,x1,x2);

S=S+m*deltaX;

x1=x2;

end

SummDarbu=S

Проверка :

f=@(x) x;

SummDarbu(f,1,2,2)

SummDarbu =1.2501