Вычисление определенного интеграла на заданном отрезке с использованием метода правых прямоугольников
Оглавление
Задание Построение графика заданной функции Поиск корней уравнения методом половинного деления Определение минимума функции методом перебора Вычисление определенного интеграла на заданном отрезке с использованием метода правых прямоугольников Список использованной литературы
Задание
Дана функция вида . Используя численные методы, необходимо: 1) Построить график функции. ) Определить корни данного уравнения методом половинного деления. ) Определить минимальное значение функции и соответствующее значение аргумента. ) Вычислить значение определенного интеграла методом правых прямоугольников. Построение графика заданной функции
Построим график функции в программе Microsoft Excel ®. Для этого зададим в табличном виде значения аргумента на отрезке [-2; 4] и соответствующие им значения функции
Построим на основании полученных табличных данных график исследуемой функции.
Из полученного графика видно, что уравнение имеет 2 корня: один отрицательный со значением около -0,8, второй - положительный, со значением около 2,2. Минимальное значение функция принимает при .
Поиск корней уравнения методом половинного деления
Зададимся интервалом , на котором будем искать корень уравнения . Очевидно, что признаком наличия на данном интервале корня уравнения есть смена знака значения функции на границах отрезка, или . Требуется найти с заданной точностью eps корень этой функции. Выберем середину отрезка . Если в середине функция имеет тот же знак, что и слева, то примем середину отрезка за новую левую границу, в противном случае - за правую. Повторяем так до тех пор, пока отрезок не станет меньше eps.
Dihotomy;;=300;,b,c,eps:Real;:Integer;fx (x:Real): Real;:=sqr(x)+2*exp(-x)-5;; Writeln ('Нахождение корней функции методом половинного деления'); Repeat('Введите границы отрезка a, b: ');(a,b);fx(a)*fx(b)>0 Then ('На данном отрезке корней нет или их несколько. Попробуйте другие значения') Endfx(a)*fx(b)<0; ('Введите требуемую точность eps: '); Readln (eps);:=0;(abs(b-a)>eps) and (st<MaxStep) Do:=st+1;:=(a+b)/2;fx(a)*fx(c)<0b:=ca:=c;;st>MaxStep Writeln ('Отсутствие сходимости. Уточните промежуток') Else Writeln ('Корень уравнения = ',c:10:6);.
Входные данные a = 0, b =3, eps = 0.000001 Выходные данные Корень уравнения = 2.185197
Определение минимума функции методом перебора
Разобьем отрезок на отрезков длиной и вычислим значение функции на границах получившихся отрезков. Минимальное среди вычисленных значений и есть искомый минимум функции на данном отрезке.
Программный код на Turbo Pascal имеет вид
Program Perebor;CRT;,b,h,min,f,xm: Real;,i: Integer;fx (x:Real): Real;:=sqr(x)+2*exp(-x)-5;; Writeln ('Поиск минимума методом перебора');('Введите границы отрезка a, b: ');(a,b);('Введите количество участков разбиения: ');
Readln (n);:=(b-a)/n;:=a; min:=fx(a);:=1;i<=n Do:=fx(a+i*h);f<min:=a+i*h;:=f;;:=i+1; ('Минимальное значение при x = ',xm:5:2,' равно = ',min:10:5);;.
Пример Входные данные a = -1, b =3, n = 10000 Выходные данные Минимальное значение при x = 0.5672 равно = -3.54406
Вычисление определенного интеграла на заданном отрезке с использованием метода правых прямоугольников
В случае если функция положительна на некотором отрезке , то значение определенного интеграла этой функции на данном отрезке численно равно площади фигуры, ограниченной сверху графиком функции, а снизу - осью координат . Разбив отрезок на отрезков длиной , вычислим площадь фигуры как сумму площадей прямоугольников с основанием и высотой, равной значению функции в правой границе прямоугольника. функция интеграл половинный деление
Программа на языке программирования Turbo Pascal имеет вид:
Program RightSquares;;,b,h,s:Real;,i:Integer;fx (x:Real): Real;:=sqr(x)+2*exp(-x)-5;; Writeln ('Вычисление интеграла методом правых прямоугольников'); Repeat('Введите границы отрезка a, b: ');(a,b);fx(a)*fx(b)<0 Then ('На данном отрезке вычислить интеграл данным методом невозможно') Endfx(a)*fx(b)>0; ('Введите количество участков разбиения: '); Readln (n);:=(b-a)/n;:=1;:=0;i<=n Do:=s+h*fx(a+i*h);:=i+1 End; Writeln ('Значение интеграла на отрезке [',a:5:2,',',b:5:2,'] = ',s:10:5);;.
Пример Входные данные a = 2.4, b =4, n = 100 Выходные данные Значение интеграла на отрезке [ 2.40, 4.00] = 8.95097
Список использованной литературы
1. Учимся программировать: Pascal 7.0, 2-е издание. А.И. Гусева, 1998 . Основы программирования. И.Г. Семакин, А.П. Шестаков, 2001 . Введение в язык ПАСКАЛЬ. В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова, 1998
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|