Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Решение задачи в среде Mathcad






Задание

Для интеграла,

I. Вычислить значение интеграла символьным методом.

II. Метод прямоугольников

1. Вычислить значение определенного интеграла приближенным методом прямоугольников с числом разбиений равным двум.

2. Вычислить значение определенного интеграла методом прямоугольников с числом разбиений равным N.

3. Определить число интервалов разбиение для заданной точности (точность равна E=0.01), и найти значение интеграла для этого N.

4. Оценить погрешность для вычисленного значения интеграла с числом разбиений равным найденному (в пункте 3) N по формуле Рунге

5. Построить график зависимости ошибки вычисления от N, и график приближенного значения интеграла от N.

III. Метод парабол

1. Вычислить значение определенного интеграла приближенным методом парабол с одним интервалом разбиения.

2. Вычислить значение определенного интеграла методом парабол с числом разбиений равным N.

3. Определить число интервалов разбиение для заданной точности (точность равна E=0.01), и найти значение интеграла для этого N.

4. Оценить погрешность для вычисленного значения интеграла с числом разбиений равным найденному (в пункте 3) N по формуле Рунге

5. Построить график зависимости ошибки вычисления от N, и график приближенного значения интеграла от N.

Пример решения задачи в MATHCAD приведен в приложении

6
2.Решение задач в Паскале

I Программа вычисления интегралов с числом интервалов разбиения равному n

Для примера будем использовать метод парабол. В программе подынтегральная функция задается в виде процедуры функции f(x). При решении задачи используются так же следующие переменные и константы:

а и b — границы интервала интегрирования, описываются как константы

n — количество интервалов разбиения, вводится с клавиатуры

h — длина одного интервала, вычисляется по формуле h: = |b-a| /n

x — начало интервала до цикла х присваивается начальное значение х: =а, а во время цикла переход к следующему интервалу осуществляется в цикле прибавлением к х длины интервала h: х: =х+h

Si — приближенное значение интеграла на интервале

S — приближенное значение интеграла на всем отрезке интегрирования

Само решение задачи заключается в вычислении суммы n слагаемых — каждый из которых является значением интеграла на интервале (переменная Si). Значение интеграла на интервале вычисляется по формуле метода парабол:

Si: =(h/6)(f(x)+4f(x+h/2)+f(x+h))

Сумма вычисляется в цикле FOR, тогда алгоритм будет выглядеть следующим образом

{Вычислить длину интервала разбиения}

H=|b-a|/n

{Задать первоначальные значения переменных

X — переменная, определяющая начало интервала

S — накапливаемая сумма}

X: =a; S: =0;

FOR I: = 1 TO N DO

BEGIN

Вычисление Si — приближенного значения интеграла на интервале i

S: =S+Si

{Переход к следующему интервалу} X: =X+H

END.

S — значение интеграла


Текст программы:

const a=1; b=3;

var S, Si: real;

x, h: real;

n, i: integer;

Function F(x: real): real;

begin

F: =x*x*x*sin(x);

end;

begin

write('n='); readln(n);

h: =abs(b-a)/n;

S: =0; x: =a;

for i: =1 to n do

begin

Si: =(f(x)+4*f(x+h/2)+f(x+h))*h/6;

S: =S+Si;

x: =x+h;

end;

writeln('S= ', s: 7: 4);

readln;

end.

Программа вычисления интегралов с заданной точностью.

Оценка точности будет производиться по формуле Рунге:

Алгоритм заключается в сравнении значений интеграла вычисленных с одним и двумя интервалами разбиения, затем с двумя и четырьмя интервалами, потом четырьмя и восьмью и т.д. пока разница между этими значениями не станет меньше заданной точности. Для записи этого алгоритма используем цикл WHILE.

 

N: =1

WHILE(| I(N)-I(2N)| > E DO

N: =2N (Увеличить N в 2 раза)

где I(N) — значение интеграла, вычисленное с N интервалами разбиения

Само же вычисление интеграла с n интервалами разбиения оформим в виде процедуры функций тело которой повторяет программу из пункта 1 с той лишь разницей, что n не вводится с клавиатуры, а передается в виде параметра.

Текст программы:

 

const a=1; b=3;

e=0.0001;

var S, Si: real;

x, h: real;

n, i: integer;

Function F(x: real): real;

begin

F: =x*x*x*sin(x);

end;

Function Simpson(n: integer): real;

var S, Si: real;

x, h: real;

i: integer;

begin

h: =abs(b-a)/n;

S: =0; x: =a;

for i: =1 to n do

begin

Si: =(f(x)+4*f(x+h/2)+f(x+h))*h/6;

S: =S+Si;

x: =x+h;

end;

Simpson: =S;

end;

Begin

n: =1;

While (abs(Simpson(2*n)-Simpson(n))> E) do

n: =2*n;

writeln('S= ', Simpson(n): 7: 4);

readln;

end.

 

Контрольные вопросы






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.