Численное интегрирование
Изучение метода построения подынтегральной функции, определение начального шага интегрирования. Рассмотрение особенностей написания и выполнения программы вычисления интеграла. Вычисление заданного интеграла с использованием функции intg пакета Scilab.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 23.09.2022 |
Размер файла | 23,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ»
(МТУСИ)
ЛАБОРАТОРНАЯ РАБОТА №4
по дисциплине: «Численные методы»
на тему: «Численное интегрирование»
Москва, 2022
Общее задание
1. Выбрать индивидуальное задание из табл. 3-1 для численного интегрирования:
· f(x) - подынтегральную функцию;
· a, b- пределы интегрирования;
· методы интегрирования для выполнения п.2 - значение в столбце t и m;
· начальный шаг интегрирования .
При этом значения в столбцах t и m означают: 1 -интегрирование методом средних прямоугольников, 2 - методом трапеций, 3 - методом Симпсона.
2. В сценарии пакета Scilab создать функцию для вычисления интеграла по 1-му заданному методу, определяя значения (столбец m) из табл. 3-1, с шагом и (). Провести оценку погрешностей полученных результатов по правилу Рунге.
3. Написать и выполнить программу вычисления интеграла по 2-му заданному методу (столбец t из табл. 3-1) с точностью 10-4.
4. Вычислить заданный интеграл с использованием функции intg пакета Scilab.
подынтегральный функция шаг программа
Индивидуальный вариант задания
f(x) |
a |
b |
t |
m |
h0 |
|
3.5 |
5 |
1 |
3 |
0.5 |
Значения в столбах t и m означают: 1 - интегрирование методом средних прямоугольников, 2 - методом трапеций, 3 - методом Симпсона.
1. В сценарии пакета Scilab создать функцию для вычисления интеграла по 1-му заданному методу, определяя значения (столбец m) из табл. 3-1, с шагом и (). Провести оценку погрешностей полученных результатов по правилу Рунге.
Код Scilab:
//Сценарий для метода Симпсона
function ff=f(x)
ff=sin(2*x) - 2 * sin(x);
endfunction
function suma=summa(b, a, h)
k=(b-a)/h;
sum2=0; sum4=0;
for i=1:2:k-2;
sum4=sum4+f(a+h*i);
sum2=sum2+f(a+h*(i+1));
end
if k>3 then
i=k-1;
sum4=sum4+f(a+h*i);
end
suma=2*sum2+4*sum4+f(a)+f(b);
suma=h./3*suma;
endfunction
a=3.5; b=5; h=0.5;
disp("Значение интеграла с шагом h:");
Ih=summa(b,a,h);
disp("Ih =");
disp(Ih);
disp("Значение интеграла с шагом h/2:");
h=h/2;
Ih2=summa(b,a,h);
disp("Ih/2 =");
disp(Ih2);
disp("Погрешность: ");
R=abs(Ih2-Ih)/(2^4-1);
disp(R);
I=Ih2+R;
disp("Значение интеграла:");
disp(I);
Результаты кода в Scilab:
--> exec('C:\Users\simpson.sce', -1)
Значение интеграла с шагом h:
Ih =
2.9130985
Значение интеграла с шагом h/2:
Ih/2 =
3.237063
Погрешность:
0.0215976
Значение интеграла:
3.2586606
2. Написать и выполнить программу вычисления интеграла по 2-му заданному методу (столбец t из табл. 3-1) с точностью 10-4.
Код C++:
#include<iostream>
#include<cmath>
using namespace std;
double fun(double x)
{
double f = sin(x*2) - 2 * sin(x);
return(f);
}
double srtr(double a, double b, double eps)
{
double s, s1, h = b - a;
int n = 1;
s = h * fun((a + b) / 2);
do
{
n = 2 * n;
h = (b - a) / n;
s1 = s;
s = 0;
for (int i = 0; i <= n - 1; i++)
{
s += fun(a + h / 2 + i * h);
}
s = s * h;
} while (abs(s - s1) / 3 > eps);
return s;
}
int main()
{
double a, b, eps, s;
int n = 1;
printf("Введите границу a:");
cin >> a;
printf("Введите границу b:");
cin >> b;
printf("Введите точность:");
cin >> eps;
s = srtr(a, b, eps);
printf("Значение интеграла с заданной точностью I=%.7f \n", s);
}
Результаты кода в C++:
PS C:\Users\lab3> g++ -c srpr.cpp
PS C:\Users\lab3> g++ -o srpr.exe srpr.cpp
PS C:\Users\lab3> ./srpr.exe
Введите границу a: 3.5
Введите границу b: 5
Введите точность: 0.0001
Значение интеграла с заданной точностью I= 3.2367568
3. Вычислить заданный интеграл с использованием функции intg пакета Scilab.
4. --> deff('y=f(x)','y=sin(x.*2)-2.*sin(x)');
5. --> a=3.5; b=5;
6. --> [s,ir]=intg(a,b,f)
7. ir =
8. 3.593D-14
9. s =
10. 3.2367246
Вывод: Сравним все полученные результаты. Значения интегралов различаются, начиная с 4 знака после запятой.
Значения интеграла методом средних прямоугольников и с использованием функции intg расходится на 0.0000322.
Значения интеграла методом Симпсона и с использованием функции intg расходится на 0.021936.
Следовательно, решение методом средних прямоугольников для данного интеграла будет более точным, чем методом Симпсона.
C++(ср.тр) |
3.2367568 |
|
Scilab(Симпсон) |
3.2586606 |
|
intg |
3.2367246 |
Размещено на Allbest.ru
Подобные документы
Разработка прикладного программного обеспечения для решения расчетных задач для компьютера. Численное интегрирование - вычисление значения определённого интеграла. Проектирование алгоритма численного метода. Тестирование работоспособности программы.
курсовая работа [1,1 M], добавлен 03.08.2011Интегрирование аналитических выражений с помощью приближенных численных методов. Реализация численного интегрирования функции двух переменных. Понятие двойного интеграла, его геометрический смысл. Решение с помощью метода ячеек, программная реализация.
курсовая работа [398,5 K], добавлен 25.01.2010Особенности метода численного интегрирования функции одной переменной. Замена на каждом элементарном отрезке подынтегральной функции на многочлен первой степени (линейную функцию). Разработка алгоритма программы, ее листинг. Пример работы программы.
контрольная работа [217,9 K], добавлен 14.07.2012Метод численного интегрирования. Использование метода половинного деления для решения нелинейного уравнения. Определение отрезка неопределенности для метода половинного деления. Получение формулы Симпсона. Уменьшение шага интегрирования и погрешности.
курсовая работа [3,0 M], добавлен 21.05.2013Обзор элементов языка программирования Паскаль, решение задач путем использования численных методов на компьютере. Алгоритм нахождения интеграла функции с помощью метода прямоугольников. Комплекс технических средств, необходимых для решения задачи.
контрольная работа [36,6 K], добавлен 07.06.2010Разработка программы, выполняющей интегрирование методом входящих прямоугольников с кратностями и методом Симпсона. Расчет определённого интеграла приближенным и точным методами. Оценка погрешности при вычислении приблизительного значения интеграла.
контрольная работа [71,7 K], добавлен 13.02.2016Рассмотрение методов приближенного численного анализа. Формулы интегрирования, прямоугольников, трапеций, формула Симпсона. Оценка погрешностей интегрирования. Вычисление интеграла по формуле трапеций с тремя десятичными знаками и по формуле Симпсона.
курсовая работа [995,7 K], добавлен 09.07.2012Методы и алгоритмы вычисления определенных интегралов: метод трапеций и метод Симпсона (метод парабол). Оформление функции вычисления заданного определённого интеграла на Visual Basic 6.0. Программный код функции. Создание приложения для вычисления.
курсовая работа [483,6 K], добавлен 25.06.2014Создание программного модуля для вычисления интеграла по формулам трапеции и Симпсона, определяя шаг интегрирования по оценке остаточного члена. Для разработки используется табличный процессор Excel и язык программирования Visual Basic for Application.
курсовая работа [159,7 K], добавлен 30.08.2010Разработка программы, которая по заданной самостоятельно функции будет выполнять интегрирование методом прямоугольников. Блок-схема алгоритма вычисления интеграла (функция rectangle_integrate). Экспериментальная проверка программы, ее текст на языке C.
курсовая работа [232,0 K], добавлен 27.05.2013