
sss / Задание для МП_11,17,П_12 / учет успеваемости_к_20_02_12 / МП-11_МА / 19_Лихоузов_02
.docxПРАКТИКУМ 1.Лихоузов Кирилл
ДЗ
Упражнение 3.
интегральная сумма слева
function [sum]=intsum(f,a,b,n)
sum=0;
fori=1:n
sum=sum+(feval(f,(a+(b*((i-1)/n)))))*((i/n)-((i-1)/n));
end
end
суммы
прав
function [sum]=darbu(f,n,a,b)
sh=(b-a)/n;
sum=0;
for i=0:n-1
sum=sum+sh*feval(f,(a+i*sh));
end
end
лев
function [sum]=darbuniz(f,n,a,b)
sh=(b-a)/n;
sum=0;
for i=1:n
sum=sum+sh*feval(f,(a+i*sh));
end
end
К понедельнику
интегральная сумма слева
>> intsum(@(x) x^2,0,1,10)
ans =
0.2850
>> intsum(@(x) x^2,0,1,100)
ans =
0.3283
>> intsum(@(x) x^2,0,1,1000)
ans =
0.3328
>> intsum(@(x) x^2,0,1,5)
ans =
0.2400
>>
> intsum(@(x) x+1,0,5,5)
ans =
3
>> intsum(@(x) x+1,0,5,10)
ans =
3.2500
>> intsum(@(x) x+1,0,5,100)
ans =
3.4750
>> intsum(@(x) x+1,0,5,1000)
ans =
3.4975
>>
суммы
>> darbu(@(x) x-1,5,0,5)
ans =
5
>> darbu(@(x) x-1,10,0,5)
ans =
6.2500
>> darbu(@(x) x-1,100,0,5)
ans =
7.3750
>> darbu(@(x) x-1,1000,0,5)
ans =
7.4875
>>
для x^2
>> darbu(@(x) x^2,5,0,1)
ans =
0.2400
>> darbu(@(x) x^2,10,0,1)
ans =
0.2850
>> darbu(@(x) x^2,100,0,1)
ans =
0.3284
>> darbu(@(x) x^2,1000,0,1)
ans =
0.3328
>>
нижняя
>> darbuniz(@(x) x-1,5,0,5)
ans =
10
>> darbuniz(@(x) x-1,10,0,5)
ans =
8.7500
>> darbuniz(@(x) x-1,100,0,5)
ans =
7.6250
>> darbuniz(@(x) x-1,1000,0,5)
ans =
7.5125
>>
для x^2
>> darbuniz(@(x) x^2,5,0,1)
ans =
0.4400
>> darbuniz(@(x) x^2,10,0,1)
ans =
0.3850
>> darbuniz(@(x) x^2,100,0,1)
ans =
0.3384
>> darbuniz(@(x) x^2,1000,0,1)
ans =
0.3338
>>
Упражнение
4. Создать М-функции, вычисляющие
значения верхних и нижних сумм Дарбу
на отрезке
с равномерным разбиением на
отрезков. Проверить работу М-функции
для функции
на отрезке
при разбиении его на два равных элемента.
суммы дарбу
верхняя
function [sum]=darbu(f,n,a,b)
sh=(b-a)/n;
sum=0;
for i=0:n-1
sum=sum+sh*feval(f,(a+i*sh));
end
end
нижняя
function darbyniz(f,n,a,b)
syms x;
in=0;
for i=0:1:n-1
[xmin,ymin]=fminbnd(f,a+(b-a)/n*i,a+(b-a)/n*(i+1));
in=in+ymin*(b-a)/n;
end
end
>> darbuniz(@(x) x,2,1,2)
ans =
1.7500
>> darbu(@(x) x,2,1,2)
ans =
1.2500
>>