ПРИБЛИЖЕННОЕ ВЫЧИСЛЕНИЕ ЗНАЧЕНИЙ ОПРЕДЕЛЕННОГО ИНТЕГРАЛА
Описание работы
Работа пользователя Aleksandr9608
Курсовая работа по Информатике от интернет-института ТулГУ, Вариант 1.
Дано:
Y = 1.02 * Х ^ 0.065
Xn = 0.433, Xk = 2.837, Eps = 0.0008
Решение для 50/100/150 разбиений
Методы вычисления: левых прямоугольников, трапеции, Симпсона, Чебышева.
Работа в программе Паскаль: численные методы решения задач, составление блок-схем алгоритма программ и создание самой программы на языке Pascal.
и др. блок-схемы для каждого метода вычичления.
(Рисунок-пример)
Рисунок 1 – Геометрический смысл определенного интеграла
Численное решение уравнений и их систем состоит в приближённом определении корней уравнения или системы уравнений и применяется в случаях, когда точный метод решения неизвестен или трудоёмок, что с определенными интегралами случается достаточно часто.
Например, требуется вычислить определенный интеграл:
I=abfxdx (1)
Выберем на отрезке интегрирования [a, b] n различных узлов a=x0<x1<x2<…<xn-1<xn=b и интерполируем функцию f(x) по ее значениям в этих узлах некоторым полиномом Pmx . Тогда определенный интеграл (1) приближенно можно вычислять по формуле:
I=abPmxdx
writeln(ff,'Результаты вычислений':47);
writeln(ff,'┌───────────┬───────────────────────────────────────────────┬────────────┐');
writeln(ff,'│ Число │ Методы вычисления │ Точность │');
writeln(ff,'│ ├───────────┬───────────┬───────────┬───────────┤ │');
writeln(ff,'│ разбиений │ Левых │ Трапеции │ Симпсона │ Чебышева │ вычисления │');
writeln(ff,'│ │ прямоуг-в │ │ │ │ │');
writeln(ff,'├───────────┼───────────┼───────────┼───────────┼───────────┼────────────┤');
s0:=0;
repeat
n:=n+n1;
LPR(xn,xk,s1,n);
TRAP(xn,xk,s2,n);
SIMP(xn,xk,s3,n);
CHEB(xn,xk,s4,n);
pog:=abs(s1-s0);
writeln(ff,'│',n:9,' │',s1:10:5,' │',s2:10:5,' │',s3:10:5,' │',s4:10:5,' │',pog:11:6,' │');
writeln('│',n:9,' │',s1:10:5,' │',s2:10:5,' │',s3:10:5,' │',s4:10:5,' │',pog:11:6,' │');
s0:=s1;
until pog<eps;
writeln(ff,'└───────────┴───────────┴───────────┴───────────┴───────────┴────────────┘');
writeln(ff,' ***Требуемая точность достигнута при ',n,' разбиениях ***');
close(ff);
Дано:
Y = 1.02 * Х ^ 0.065
Xn = 0.433, Xk = 2.837, Eps = 0.0008
Решение для 50/100/150 разбиений
Методы вычисления: левых прямоугольников, трапеции, Симпсона, Чебышева.
Работа в программе Паскаль: численные методы решения задач, составление блок-схем алгоритма программ и создание самой программы на языке Pascal.
- БЛОК-СХЕМЫ АЛГОРИТМА ПРОГРАММЫ
n,S1,S2,S3,S4,r
r<eps
TRAP(xk,xn,S2,n)
SIMP(xk,xn,S3,n)
CHEB(xk,xn,S4,n)
r=|S1-S0|,S0=S1
Graphic
S0=0
n=n+50
LRP(xk,xn,S1,n)
НАЧАЛО
a,b,eps,n
n
КОНЕЦ
Да
и др. блок-схемы для каждого метода вычичления.
- ОПИСАНИЕ ЧИСЛЕННЫХ МЕТОДОВ РЕШЕНИЯ ЗАДАЧИ
(Рисунок-пример)
Рисунок 1 – Геометрический смысл определенного интеграла
Численное решение уравнений и их систем состоит в приближённом определении корней уравнения или системы уравнений и применяется в случаях, когда точный метод решения неизвестен или трудоёмок, что с определенными интегралами случается достаточно часто.
Например, требуется вычислить определенный интеграл:
I=abfxdx (1)
Выберем на отрезке интегрирования [a, b] n различных узлов a=x0<x1<x2<…<xn-1<xn=b и интерполируем функцию f(x) по ее значениям в этих узлах некоторым полиномом Pmx . Тогда определенный интеграл (1) приближенно можно вычислять по формуле:
I=abPmxdx
writeln(ff,'Результаты вычислений':47);
writeln(ff,'┌───────────┬───────────────────────────────────────────────┬────────────┐');
writeln(ff,'│ Число │ Методы вычисления │ Точность │');
writeln(ff,'│ ├───────────┬───────────┬───────────┬───────────┤ │');
writeln(ff,'│ разбиений │ Левых │ Трапеции │ Симпсона │ Чебышева │ вычисления │');
writeln(ff,'│ │ прямоуг-в │ │ │ │ │');
writeln(ff,'├───────────┼───────────┼───────────┼───────────┼───────────┼────────────┤');
s0:=0;
repeat
n:=n+n1;
LPR(xn,xk,s1,n);
TRAP(xn,xk,s2,n);
SIMP(xn,xk,s3,n);
CHEB(xn,xk,s4,n);
pog:=abs(s1-s0);
writeln(ff,'│',n:9,' │',s1:10:5,' │',s2:10:5,' │',s3:10:5,' │',s4:10:5,' │',pog:11:6,' │');
writeln('│',n:9,' │',s1:10:5,' │',s2:10:5,' │',s3:10:5,' │',s4:10:5,' │',pog:11:6,' │');
s0:=s1;
until pog<eps;
writeln(ff,'└───────────┴───────────┴───────────┴───────────┴───────────┴────────────┘');
writeln(ff,' ***Требуемая точность достигнута при ',n,' разбиениях ***');
close(ff);