https://pastein.ru/t/R2

  скопируйте уникальную ссылку для отправки


clc;
syms x
f=(cos(x))^2;  %!
a=0;  %!
b=pi/3;  %!
integral=vpa(int(f,[a b])); 
h=[0.1 0.01 0.001];
 
for i=1:3
    n(i)=int16((b-a)/h(i));
end
 
C1(1:n(1))=2; C1(1)=1; C1(n(1))=1;
C2(1:n(2))=2; C2(1)=1; C2(n(2))=1;
C3(1:n(3))=2; C3(1)=1; C3(n(3))=1;
 
for i=1:n(1)
    cF(1,i)=C1(i)*(cos(double(i)*h(1)-h(1)))^2;  %!
end
for i=1:n(2)
    cF(2,i)=C2(i)*(cos(double(i)*h(2)-h(2)))^2;  %!
end
for i=1:n(3)
    cF(3,i)=C3(i)*(cos(double(i)*h(3)-h(3)))^2;  %!
end
 
summa=sum(transpose(cF));
[x, y]=max(cF(:));
maks=h(3)*y;
 
for q=1:3
S(q)=(h(q)/2)*summa(q);
abs(q)=integral-S(q);
otnos(q)=abs(q)*100/S(q);
M(q)=vpa(subs (diff(f, 'x',2),'x',maks));
ep(q)=(h(q)*h(q)*(b-a)*(M(q)))/12;
end
 
 
 
disp("численный расчёт методом ТРАПЕЦИЙ")
disp(S(1:length(h)))
disp("аналитический расчёт")
disp(integral)
disp("абсолютная погрешность")
disp(abs(1:3))
disp("абсолютная методическая погрешность")
disp(ep(1:3))
disp("относительная погрешность ")
disp(otnos(1:3))
 
for i=1:3
    n(i)=int16((b-a)/h(i));
    if  rem(n(i),2)~=0
        n(i)=n(i)+1;
    end
end
 
for i=1:n(1)
    if  rem(i,2)==0
        C1(i)=4;
    end
end
C1(1)=1; C1(n(1))=1;
for i=1:n(2)
   if  rem(i,2)==0
        C2(i)=4;
    end 
end
 C2(1)=1; C2(n(2))=1;
for i=1:n(3)
    if  rem(i,2)==0
        C3(i)=4;
    end
end
 C3(1)=1; C3(n(3))=1;
 
for i=1:n(1)
    cF(1,i)=C1(i)*(cos(double(i)*h(1)-h(1)))^2;  %!
end
for i=1:n(2)
    cF(2,i)=C2(i)*(cos(double(i)*h(2)-h(2)))^2;  %!
end
for i=1:n(3)
    cF(3,i)=C3(i)*(cos(double(i)*h(3)-h(3)))^2;  %!
end

summa=sum(transpose(cF));
 
for q=1:3
S(q)=(h(q)/3)*summa(q);
abs(q)=integral-S(q);
otnos(q)=abs(q)*100/S(q);
M(q)=vpa(subs (diff(f, 'x',4),'x',maks));
ep(q)=(h(q)*h(q)*h(q)*h(q)*(b-a)*(M(q)))/180;
end
 
 
 
disp("численный расчёт методом ПАРАБОЛЫ")
disp(S(1:length(h)))
disp("аналитический расчёт")
disp(integral)
disp("абсолютная погрешность")
disp(abs(1:3))
disp("абсолютная методическая погрешность")
disp(ep(1:3))
disp("относительная погрешность ")
disp(otnos(1:3))
 
 
for i=1:n(1)
    cF(1,i)=h(1)*(cos(double(i)*h(1)-h(1)))^2;  %!
end
for i=1:n(2)
    cF(2,i)=h(2)*(cos(double(i)*h(2)-h(2)))^2;  %!
end
for i=1:n(3)
    cF(3,i)=h(3)*(cos(double(i)*h(3)-h(3)))^2;  %!
end
 
summa=sum(transpose(cF));
 
for q=1:3
S(q)=summa(q);
abs(q)=integral-S(q);
otnos(q)=abs(q)*100/S(q);
end
 
 
 
disp("численный расчёт методом ЛЕВЫХ ПРЯМОУГОЛЬНИКОВ")
disp(S(1:length(h)))
disp("аналитический расчёт")
disp(integral)
disp("абсолютная погрешность")
disp(abs(1:3))
disp("относительная погрешность ")
disp(otnos(1:3))