Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Сформулировать отличия метода половинного деления от метода касательных (Ньютона). Сравнительные достоинства и недостатки методов



При решении нелинейного уравнения методом половинного деления задаются интервал [a,b], на котором существует только одно решение, и желаемая точность ε. Затем определяется середина интервала с=(а+b)/2 и проверяется условие F(a)∙F(c)<0. Если указанное условие выполняется, то правую границу интервала b переносим в среднюю точку с (b=c). Если условие не выполняется, то в среднюю точку переносим левую границу(a=c). Деление отрезка пополам продолжается пока |b-a|>ε.

В отличие от метода половинного деления, для определения интервала, в котором заключён корень, не требуется находить значения функции с противоположными знаками. Вместо интерполяции по двум значениям функции, в методе Ньютона делается экстраполяция с помощью касательной к кривой в данной точке. В основе метода лежит разложение функции f(x) в ряд Тейлора.

Члены ряда, содержащие h во второй и более высоких степенях, отбрасываются; используется соотношение xn+h=xn+1. Предполагается, что переход от xn к xn+1 приближает значение функции к нулю так, что f(xn+h)=0. Тогда xn+1=xn-f(xn)/f'(xn).

Значение xn+1 соответствует точке, в которой касательная к кривой в точке xn пересекает ось x. Так как кривая f(x) отлична от прямой, то значение функции f(xn+1) не будет в точности равно нулю. Поэтому вся процедура пoвторяется, причём вместо xn используется xn+1. Счет прекращается, когда разница между xn и xn+1 будет меньше или равна числу ε, т.е. |xn-xn+1|=<ε. На рисунке процесс решения уравнения методом Ньютона показан графически.

Метод Ньютона требует меньшего числа повторений, чем метод половинного деления. Недостатки метода – необходимость дифференцирования функции f(x), и f(x) должно быть не равно нулю.

17. Решить в пакете MATLAB уравнение с заданной точностью при заданном начальном приближении с использованием функции fzero.

При обращении к fzero возможно указать: либо начальное приближение к корню; либо отрезок, на котором исследуемая функция принимает значения разных знаков.

Если задано начальное приближение, то fzero начинает поиск отрезка, содержащего корень, т.е. такого, на границах которого исследуемая функция меняет знак. Затем начинаем операцию Поиск в функции fzero интервала, содержащего корень. Когда отрезок найден, то начинает работу алгоритм уточнения корня, основанный на нескольких методах численного решения уравнений. Если же с самого начала в fzero был задан отрезок, на границах которого функция меняет знак, то этот алгоритм по уточнению корня сразу начинает работу.

Если функция fzero вызвана с начальным приближением к корню

fzero(fun, x0)

а не с отрезком, на границах которого происходит смена знака исследуемой функции, то происходит поиск такого отрезка с целью отделения корня. Алгоритм отделения корня в функции fzero достаточно простой.

Сначала выбирается шаг dx. Далее вычисляется значение исследуемой функции в точке a=x0 –dx и сравнивается со значением исследуемой функции в точке. Если и разных знаков, то корень отделен, а если знаки совпадают, то происходит расширение промежутка вправо от точка до и сравниваются знаки функции в точках a и b. Если они различны, то корень отделен, а если нет, то в цикле происходит последовательное увеличение шага в √2 раз и расширение промежутка влево, а затем и вправо от точки x0 с проверкой знаков функции на границах. Как только знаки станут различными, отделение корня прекращается и начинает работать алгоритм по его уточнению.

В вышеописанном алгоритме отделения корня производится проверка: являются ли значения исследуемой функции в получаемых точках конечными и вещественными. Если значения функции оказались комплексными, или в процессе вычислений возникло переполнение при вычислениях с плавающей точкой, то работа fzero прекращается и выводится соответствующее сообщение в командное окно.


18. Дано уравнение . Показать, сходится или нет итерационный процесс на заданном отрезке.

Также как и в случае уравнения с одним неизвестным, заменяют нелинейную систему эквивалентной системой вида ,

выбирают некоторое начальное приближение и дальнейшие приближения ищут по формуле

или в координатной форме . (2.15)

Вычисления продолжают до тех пор, пока по всем координатам не будет выполнено условие

Итерационный процесс сходится, если выполняется одно из следующих условий [2]:

(2.17), где .

Т.е. итерационный процесс сходится, если модуль диагонального элемента больше суммы модуля оставшихся элементов строки. Если данное условие не выполняется, необходимо соответствующим образом преобразовать СЛАУ. Это можно сделать, выполнив эквивалентные преобразования системы:

· перестановка строк;

· линейная комбинация строк.

Алгоритм состоит из следующих основных блоков.

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

2. Установка флага события flag = 1 – решения найдены с требуемой точностью по всем координатам.

Вычисление значений переменных на очередном шаге.

4. Организация цикла по проверке условия (2.16) достижения требуемой точности вычислений по всем координатам, сброс флага события (flag = 0) в случае его невыполнения хотя бы по одной координате, формирование вектора начальных приближений для следующей итерации .

5. Проверка условия нахождения решений (flag = 1) и возвращение к п.2. в случае его невыполнения.

6. Вывод результатов.

19. Дана система линейных алгебраических уравнений AX = B. Решить систему, используя средства MATLAB (не менее четырех способов решения).

СЛАУ в матричной форме записывается в виде

AX = B, (1)

где

; ; .

В скалярной форме записи

.

Система (1) имеет единственное решение, если .

Систему уравнений (1) в MATLAB можно решить различными методами:

Для этого применяются следующие операторы:

/ - правое деление;
   
\ - левое деление;
   
А - 1 - возведение в степень –1;
   
inv(A) - обращение матрицы А.

Выражения Х=В/A,Х=В* (А^ - 1),Х=В* inv(A),Х=A\В

дают решения ряда систем линейных уравнений АХ = В, где А – матрица размером m*n,

В – матрица размером n*к.

Обращение матриц – одна из наиболее распространенных задач.

Эту процедуру выполняет функция inv (A), которая вычисляет элементы обратной матрицы для исходной квадратной матрицы A. Выдается предупреждающее сообщение, если матрица х близка к вырожденной.

Пример:

Текст М-файла, левое деление:

a=[a11 a12 a13 a14;

a21 a22 a23 a24;

a31 a32 a33 a34;

a41 a42 a43 a44];

b=[b1; b2; b3; b4];

X1=a\b

Полученное решение:

X1 =

c

d

e

f

Текст М-файла, правое деление:

a=[a11 a12 a13 a14;

a21 a22 a23 a24;

a31 a32 a33 a34;

a41 a42 a43 a44];

a1=a'

b=[b1; b2; b3; b4];

X2 = b/a1

Полученное решение:

X2 =

c d e f

Текст М-файла, возведение в степень –1;

a=[a11 a12 a13 a14;

a21 a22 a23 a24;

a31 a32 a33 a34;

a41 a42 a43 a44];

a1=a'

b=[b1; b2; b3; b4];

X3 = b*(a^-1)'

Полученное решение:

X3 =

c d e f

Текст М-файла, обращение матрицы А:

a=[a11 a12 a13 a14;

a21 a22 a23 a24;

a31 a32 a33 a34;

a41 a42 a43 a44];

a1=a'

b=[b1; b2; b3; b4];

X4 = b*inv(a)'

Полученное решение:

X4=

c d e f


20. Дан вектор. Вычислить m - норму вектора аналитически и в MATLAB (составить программу).

Даны вектор

Пусть дан вектор:

X=[1 2 3 4];

Вычислим m-норму вектора аналитически:

max -норма, или m – норма вектора:

В Mathlab в Command Window пишем:

X=[1 2 3 4];

mn=norm(X, inf)

Получим:

mn=4


21.Дан вектор. Вычислить l - норму вектора аналитически и в MATLAB (составить программу).

Даны вектор

Пусть дан вектор:

X=[1 2 3 4];

Вычислим l-норму вектора аналитически:

В Mathlab в Command Window пишем:

A=[1 2 3 4];

ml=norm(A, inf)

Получим:

ml=10


22.Дана матрица. Вычислить m - норму матрицы аналитически и используя встроенные в MATLAB средства.

Пусть дана матрица:


Вычислим m-норму данной матрицы аналитически:

max -норма, или m – норма

В Mathlab в Command Window пишем:

A=[1 2 3; 4 5 6; 7 8 9];

mn=norm(A, inf)

Получим:

mn=24


23.Дана матрица. Вычислить l - норму норму матрицы аналитически и используя встроенные в MATLAB средства.

Пусть дана матрица:

Вычислим l-норму данной матрицы аналитически:

В Mathlab в Command Window пишем:

A=[1 2 3; 4 5 6; 7 8 9];

ml=norm(A, 1)

Получим:

ml=18


24. Дана система линейных алгебраических уравнений . Проверить, что итерационный процесс сходится для m –нормы. Определить условие окончания итерационного процесса.

Пусть дано уравнение (1)

Заменим его равносильным уравнением

(2)

Здесь

Вычислительная формула метода простых итераций:

(3)

Если последовательность имеет предел то этот предел является решением системы

Теорема. Если то система уравнений (2) имеет единственное решение и итерационный процесс (3) сходится к решению независимо от начального приближения.

Критерий окончания итерационного процесса:

Здесь e - заданная точность вычислений. В качестве решения берется величина Xn.


25. Дана система линейных алгебраических уравнений AX = B. Привести ее к виду, пригодному для решения методом простых итераций . Проверить условие сходимости итерационного процесса для какой – либо нормы.

Любую невырожденную систему уравнений AX = B всегда можно заменить эквивалентной системой так, что условие сходимости будет выполняться.

Для этого умножим уравнение AX = B на матрицу D = А^-1 – D, где D -матрица с малыми по модулю элементами. Последовательно получим:

Обозначим

В результате получим систему вида

Очевидно, что если элементы матрицы D выбрать достаточно малыми по модулю, то можно обеспечить выполнение условия

Т.е. для сходимости итерационного процесса необходимо выполнение условия

или

26. Функция задана таблично на отрезке . С какой точностью можно вычислить значение данной функции в указанной точке с помощью интерполяционного полинома Лагранжа.

27. Функция задана таблично в точках и . Построить интерполяционный полином Лагранжа . Создать M – файл функцию в MATLAB.

X -1      
y        

% Введём табличную функцию
x = [-1 0 1 2];
y = [4 2 0 1];

% Построим интерполяционный многочлен (аппроксимация четвёртой степени)
p = polyfit(x, y, 4);

% Коэффициенты интерполяции \sum_{i=0}^n p(i) x^i
p

>>

p =          
  1.2500 -2.0000 -1.2500   2.0000
           

28.Сформулировать принципиальные отличия сплайн – интерполяции от интерполяционной формулы Лагранжа.

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

Сплайн-интерполяция отличается от интер-ой формулы Лагранжа тем, что при большом количестве узлов интерполяции приходится использовать интерполяционные полиномы высокой степени, что создает определенные неудобства при вычислениях. Можно избежать высокой степени интерполяционного многочлена, разбив отрезок интерполяции на несколько частей с построением на каждой части самостоятельного интерполяционного многочлена. Однако такое интерполирование обладает существенным недостатком: в точках сшивки разных интерполяционных полиномов будет разрывной их первая производная, поэтому для решения задачи кусочно-линейной интерполяции используют особый вид кусочно-полиномиальной интерполяции - сплайн-интерполяцию.

29.Функция , задана таблично в узлах . Выполнить ступенчатую интерполяцию данной функции средствами MATLAB с построением графика.

'nearest' — линейная интерполяция (принята по умолчанию);

Пример (интерполяция функции косинуса):

» x=0:10:y=cos(x);

» xi=0:0.1:10;

» yi= nearest (x,y,xi);

» plot(x,y,'x',xi,yi,'g'),hold on

» yi= nearest (x,y,xi.'spline'):

» plot(x,y,'o ' ,xi,yi,'m').grid,hold off

30. Функция , задана таблично в узлах . Выполнить линейную интерполяцию данной функции средствами MATLAB с построением графика.

'linear' — линейная интерполяция (принята по умолчанию);

Пример (интерполяция функции косинуса):

» x=0:10:y=cos(x);

» xi=0:0.1:10;

» yi= linear (x,y,xi);

» plot(x,y,'x',xi,yi,'g'),hold on

» yi= linear (x,y,xi.'spline'):

» plot(x,y,'o ',xi,yi,'m').grid,hold off

31.Вычислить значение интеграла при заданных значениях a, b и с помощью метода трапеций встроенными средствами MATLAB.

Для вычисления значений определенных интегралов в пакете MATLAB имеются следующие функции quad(), quadl(), trapz(), cumtrapz().

Функция trapz() вычисляет интеграл, используя метод трапеций. Синтаксис функции trapz():

Z = trapz(Y) % возвращает значение определенного интеграла, в

% предположении, что X=1:length(Y)

Z = trapz(X,Y) % возвращает значение интеграла

% на интервале [X(1),X(N)]

Z = trapz(...,dim) % интегрирует вектор Y, формируемый из чисел,

% расположенных в размерности dim

% многомерного массива

Пример

Вычисление определенного интеграла с использованием встроенной функции пакета MATLAB.

>> x=0:0.01:pi/2; % задание координат узловых точек

>> y=sin(x); % вычисление значений подынтегральной функции в

% узловых точках

>> trapz(y) % вычисление значения интеграла, в предположении о

% том, что шаг интегрирования равен единице

ans = 99.9195

>> trapz(x,y) % вычисление значения интеграла на отрезке с

% шагом интегрирования 0.01

ans = 0.9992

32. Вычислить значение интеграла при заданных значениях a, b и с помощью метода Симпсона встроенными средствами MATLAB.

Для вычисления значений определенных интегралов в пакете MATLAB имеются следующие функции quad(), quadl(), trapz(), cumtrapz(), которые имеют следующий синтаксис.

>> q = quad(fun,a,b) % возвращает значение интеграла от функции

% fun на интервале [a,b], при вычислении

% используется адаптивный метод Симпсона.

Пример 6.3. Вычисление интеграла с использованием функций quad.

>> q=quad('sin',0,pi/2,10^-4)

q = 1.0000

>> q-1

ans = -3.7216e-008

>> q=quad('sin',0,pi/2,10^-6,'trace');

9 0.0000000000 4.26596866e-001 0.0896208493

11 0.4265968664 7.17602594e-001 0.4966040522

13 0.4265968664 3.58801297e-001 0.2032723690

15 0.7853981634 3.58801297e-001 0.2933317183

17 1.1441994604 4.26596866e-001 0.4137750613

>> q-1

ans = -2.1269e-009

>> [q,fnct]=quad('sin',0,pi/2,10^-6,'trace');

9 0.0000000000 4.26596866e-001 0.0896208493

11 0.4265968664 7.17602594e-001 0.4966040522

13 0.4265968664 3.58801297e-001 0.2032723690

15 0.7853981634 3.58801297e-001 0.2933317183

17 1.1441994604 4.26596866e-001 0.4137750613

>> 17

33. Вычислить значение интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы левых прямоугольников в MATLAB.

1. Задаем функцию f(x) = Pn(x) в m-файле функции.

function res=f(x)% Интегрируемая функция

res= Сама функция;

2. Вычислить значение интеграла I аналитически, т.е. найти его точное значение.

% Вычисление точного значение интеграла. Второй способ.

a=0; b=1; % Пределы интегрирования

syms x; % Задание символьной переменной

f=сама функция; % Задание подинтегральной функции

In=int(f) % - неопределённый интеграл,

Io=int(f,a,b) % - определённый интеграл.

format long e % Необходимо для перевода результата из

I=double(Io) % символьного формата в вещественный.

3. Вычислить значение интеграла I по формулам левых прямоугольников.

Здесь h = (b-a)/n

Файл сценария:

a=1; b=1.44;

format short e

h=(b-a)/n;

I=h*f(a)-левых прямоугольников

Пример 6.2. Вычисление интеграла методом прямоугольников в пакете MATLAB:

>> f=inline('sin(x)'); % задание подынтегральной функции

>> Xmin=0;

>> Xmax=pi/2;

>> N=2001;

>> i=1:N;

>> dx=(Xmax-Xmin)/(N-1); % шаг интегрирования

>> x=Xmin:dx:Xmax; % вычисление координат узлов сетки

>> y=feval(f,x); % вычисление значений функции в узлах сетки

% вычисление интеграла по формуле левых прямоугольников

>> m=1:N-1;

>> y1(m)=y(m);

>> Fl=sum(y1)*dx

Fl =0.9996

>> Fl-1

ans = -3.9295e-004

34. Вычислить значение интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы средних прямоугольников в MATLAB.

1. Задаем функцию f(x) = Pn(x) в m-файле функции.

function res=f(x)% Интегрируемая функция

res= Сама функция;

2. Вычислить значение интеграла I аналитически, т.е. найти его точное значение.

% Вычисление точного значение интеграла. Второй способ.

a=0; b=1.44; % Пределы интегрирования

syms x; % Задание символьной переменной

f=сама функция; % Задание подинтегральной функции

In=int(f) % - неопределённый интеграл,

Io=int(f,a,b) % - определённый интеграл.

format long e % Необходимо для перевода результата из

I=double(Io) % символьного формата в вещественный.

3. Вычислить значение интеграла I по формулам средних прямоугольников.

Здесь h = (b-a)/n

Файл сценария:

a=1; b=1.44;

format short e

h=(b-a)/n;

I=h*f((a+b)/2)-средних прямоугольников

Пример 6.2. Вычисление интеграла методом прямоугольников в пакете MATLAB:

>> f=inline('sin(x)'); % задание подынтегральной функции

>> Xmin=0;

>> Xmax=pi/2;

>> N=2001;

>> i=1:N;

>> dx=(Xmax-Xmin)/(N-1); % шаг интегрирования

>> x=Xmin:dx:Xmax; % вычисление координат узлов сетки

>> y=feval(f,x); % вычисление значений функции в узлах сетки

% Нахождение значения интеграла с помощью

%метода средних прямоугольников

I=inf;

for i=1:n-1

I=I+fz1(a+i*h+h/2);

end

format long e

I1=I*h

D1=abs(I-I1)

35. Аналитически найти теоретическую погрешность при численном вычислении интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы левых прямоугольников.

Для нахождения зависимостей погрешности вычисления определенного интеграла на отрезке от числа отрезков разбиения интервала интегрирования разложим подынтегральную функцию в ряд Тейлора:

. (6.22)

Тогда интеграл от данной функции на отрезке будет равен

. (6.23)

Оценим погрешность метода левых прямоугольников. Погрешность интегрирования на отрезке равняется разности между точным значением интеграла и его оценкой :

. (6.24)

Из (6.24) видно, что основной член погрешности на каждом отрезке имеет порядок или, в символической записи, . Поскольку полное число отрезков равно

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

……………………………….

1. Задаем функцию f(x) = Pn(x) в m-файле функции.

function res=f(x)% Интегрируемая функция

res= Сама функция;

2. Вычислить значение интеграла I аналитически, т.е. найти его точное значение.

% Вычисление точного значение интеграла. Второй способ.

a=0; b=1.44; % Пределы интегрирования

syms x; % Задание символьной переменной

f=сама функция; % Задание подинтегральной функции

In=int(f) % - неопределённый интеграл,

Io=int(f,a,b) % - определённый интеграл.

format long e % Необходимо для перевода результата из

I=double(Io) % символьного формата в вещественный.

3. Вычислить значение интеграла I по формуле левых прямоугольников.

Здесь h = (b-a)/n

Файл сценария:

a=1; b=1.44;

format short e

h=(b-a)/n;

I=h*f(a)-левых прямоугольников

4. Определение теоретической погрешности:

Теоретическая оценка погрешности.

Файл сценария:

syms x;

f=сама функция;

f1=diff(f,1);

f2=diff(f,2);

f4=diff(f,4);

a=1;

b=1.44;

x=a:0.001:b;

format short e

m1= первая производная от исходной функции;

m2= вторая производная от исходной функции;

m4= четвертая производная от исходной функции;

M1=max(abs(m1));

M2=max(abs(m2));

M4=max(abs(m4));

h=(b-a)/n;

R=(M1*(b-a)*h)/2 левых прямоугольников

36. Аналитически найти теоретическую погрешность при численном вычислении интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы средних прямоугольников.

Рассмотрим подробно один и возможных способов оценки погрешности формул численного интегрирования на примере метода средних прямоугольников. Для этого запишем выражение для интеграла на отрезке , полученное методом средних прямоугольников (4.24), откуда (4.25)

Для оценки погрешности интегрирования разложим подынтегральную функцию в ряд Тейлора около средней точки

(4.26)

В малой окрестности точки x в разложении (4.26) можно ограничится небольшим количеством членов ряда. Поэтому, подставляя в (4.25) вместо функции ее тейлоровское разложение (4.26) и интегрируя его почленно, можно вычислить интеграл с любой наперед заданной точностью

(4.27)

При интегрировании и подстановке пределов получаем, что все интегралы от членов ряда (4.26), содержащих нечетные степени , обращаются в нуль. Подставляя полученное соотношение в формулу (4.25), получим При малой величине шага интегрирования h основной вклад в погрешность будет вносить первое слагаемое, которое называется главным членом погрешности вычисления интеграла на отрезке (4.28)

Главный член полной погрешности для интеграла на всем интервале определиться путем суммирования погрешностей на каждом отрезке

(4.29)

Формула (4.29) представляет собой теоретическую оценку погрешности вычисления интеграла методом средних прямоугольников, эта оценка является априорной, так как не требует знания значения вычисляемого интеграла. Степень шага h, которой пропорциональна величина , называется порядком метода интегрирования. Метод средних прямоугольников имеет второй порядок точности.

1. Задаем функцию f(x) = Pn(x) в m-файле функции.

function res=f(x)% Интегрируемая функция

res= Сама функция;

2. Вычислить значение интеграла I аналитически, т.е. найти его точное значение.

% Вычисление точного значение интеграла. Второй способ.

a=0; b=1; % Пределы интегрирования

syms x; % Задание символьной переменной

f=сама функция; % Задание подинтегральной функции

In=int(f) % - неопределённый интеграл,

Io=int(f,a,b) % - определённый интеграл.

format long e % Необходимо для перевода результата из

I=double(Io) % символьного формата в вещественный.

3. Вычислить значение интеграла I по формулам средних прямоугольников.

Здесь h = (b-a)/n

Файл сценария:

a=1; b=1.44;

format short e

h=(b-a)/n;

I=h*f((a+b)/2)-средних прямоугольников

4. Определение теоретической погрешности:

Теоретическая оценка погрешности.

Файл сценария:

syms x;

f=сама функция;

f1=diff(f,1);

f2=diff(f,2);

f4=diff(f,4);

a=1;

b=1.44;

x=a:0.001:b;

format short e

m1= первая производная от исходной функции;

m2= вторая производная от исходной функции;

m4= четвертая производная от исходной функции;

M1=max(abs(m1));

M2=max(abs(m2));

M4=max(abs(m4));

h=(b-a)/n;

R=(M2*(b-a)*h^2)/24- средних прямоугольников

37. Вычислить значение интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы трапеций в MATLAB.

1. Задаем функцию f(x) = Pn(x) в m-файле функции.

function res=f(x)% Интегрируемая функция

res= Сама функция;

2. Вычислить значение интеграла I аналитически, т.е. найти его точное значение.

% Вычисление точного значение интеграла. Второй способ.

a=0; b=1; % Пределы интегрирования

syms x; % Задание символьной переменной

f=сама функция; % Задание подинтегральной функции

In=int(f) % - неопределённый интеграл,

Io=int(f,a,b) % - определённый интеграл.

format long e % Необходимо для перевода результата из

I=double(Io) % символьного формата в вещественный.

3. Вычислить значение интеграла I по формуле трапеций.

Здесь h = (b-a)/n

Файл сценария:

a=1; b=1.44;

format short e

h=(b-a)/n;

I=h*((f(a)+f(b))/2)-трапеций

Пример 6.2. Вычисление интеграла методом прямоугольников в пакете MATLAB:

>> f=inline('sin(x)'); % задание подынтегральной функции

>> Xmin=0;

>> Xmax=pi/2;

>> N=2001;

>> i=1:N;

>> dx=(Xmax-Xmin)/(N-1); % шаг интегрирования

>> x=Xmin:dx:Xmax; % вычисление координат узлов сетки

>> y=feval(f,x); % вычисление значений функции в узлах сетки

% вычисление интеграла методом трапеций

>> s=0;

for i=2:N-1

s=s+y(i);

end;

Ft=(0.5*y(1)+s+0.5*y(N))*dx

Ft =

1.0000

>> Ft-1

ans =

-5.1456e-008


38. Аналитически найти теоретическую погрешность при численном вычислении интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы трапеций.

Для нахождения зависимостей погрешности вычисления определенного интеграла на отрезке от числа отрезков разбиения интервала интегрирования разложим подынтегральную функцию в ряд Тейлора:

. (6.22)

Тогда интеграл от данной функции на отрезке будет равен

. (6.23)

Погрешность формулы трапеций

. Так как значение интеграла на отрезке вычисляется по формуле , то погрешность равна

(6.25)

Заменив в (6.25) первый член выражением (6.23), значение функции в точке - разложением в ряд Тэйлора:

,

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

1. Задаем функцию f(x) = Pn(x) в m-файле функции.

function res=f(x)% Интегрируемая функция

res= Сама функция;

2. Вычислить значение интеграла I аналитически, т.е. найти его точное значение.

% Вычисление точного значение интеграла. Второй способ.

a=0; b=1; % Пределы интегрирования

syms x; % Задание символьной переменной

f=сама функция; % Задание подинтегральной функции

In=int(f) % - неопределённый интеграл,

Io=int(f,a,b) % - определённый интеграл.

format long e % Необходимо для перевода результата из

I=double(Io) % символьного формата в вещественный.

3. Вычислить значение интеграла I по формуле трапеций.

Здесь h = (b-a)/n

Файл сценария:

a=1; b=1.44;

format short e

h=(b-a)/n;

I=h*((f(a)+f(b))/2)-трапеций

4. Определение теоретической погрешности:

Теоретическая оценка погрешности.

Файл сценария:

syms x;

f=сама функция;

f1=diff(f,1);

f2=diff(f,2);

f4=diff(f,4);

a=1;

b=1.44;

x=a:0.001:b;

format short e

m1= первая производная от исходной функции;

m2= вторая производная от исходной функции;

m4= четвертая производная от исходной функции;

M1=max(abs(m1));

M2=max(abs(m2));

M4=max(abs(m4));

h=(b-a)/n;

R=(M2*(b-a)*h^2)/12 трапеций

39. Вычислить значение интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы Симпсона в MATLAB.

1. Задаем функцию f(x) = Pn(x) в m-файле функции.

function res=f(x)% Интегрируемая функция

res= Сама функция;

2. Вычислить значение интеграла I аналитически, т.е. найти его точное значение.

% Вычисление точного значение интеграла. Второй способ.

a=0; b=1; % Пределы интегрирования

syms x; % Задание символьной переменной

f=сама функция; % Задание подинтегральной функции

In=int(f) % - неопределённый интеграл,

Io=int(f,a,b) % - определённый интеграл.

format long e % Необходимо для перевода результата из

I=double(Io) % символьного формата в вещественный.

3. Вычислить значение интеграла I по формуле Симпсона.

Здесь h = (b-a)/n

Файл сценария:

a=1; b=1.44;

format short e

h=(b-a)/n;

I5=(h/6)*(f(a)+4*f((a+b)/2)+f(b))- Симпсона

Пример 6.2. Вычисление интеграла методом прямоугольников в пакете MATLAB:

>> f=inline('sin(x)'); % задание подынтегральной функции

>> Xmin=0;

>> Xmax=pi/2;

>> N=2001;

>> i=1:N;

>> dx=(Xmax-Xmin)/(N-1); % шаг интегрирования

>> x=Xmin:dx:Xmax; % вычисление координат узлов сетки

>> y=feval(f,x); % вычисление значений функции в узлах сетки

% вычисление интеграла методом Симпсона

>> s=0;

for i=2:N-1

if i-2*ceil(i/2)==0

k=4;

else

k=2;

end;

s=s+k*y(i);

end;

Fs=(y(1)+s+y(N))*dx/3

Fs =

1.0000

>> Fs-1

ans =

1.5543e-015


40.Аналитически найти теоретическую погрешность при численном вычислении интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы Симпсона.

Задаем функцию f(x) = Pn(x) в m-файле функции.

function res=f(x)% Интегрируемая функция

res= Сама функция;

2. Вычислить значение интеграла I аналитически, т.е. найти его точное значение.

% Вычисление точного значение интеграла. Второй способ.

a=0; b=1; % Пределы интегрирования

syms x; % Задание символьной переменной

f=сама функция; % Задание подинтегральной функции

In=int(f) % - неопределённый интеграл,

Io=int(f,a,b) % - определённый интеграл.

format long e % Необходимо для перевода результата из

I=double(Io) % символьного формата в вещественный.

3. Вычислить значение интеграла I по формуле Симпсона.

Здесь h = (b-a)/n

Файл сценария:

a=1; b=1.44;

format short e

h=(b-a)/n;

I=(h/6)*(f(a)+4*f((a+b)/2)+f(b))- Симпсона

4. Определение теоретической погрешности:

Теоретическая оценка погрешности.

Файл сценария:

syms x;

f=сама функция;

f1=diff(f,1);

f2=diff(f,2);

f4=diff(f,4);

a=1;

b=1.44;

x=a:0.001:b;

format short e

m1= первая производная от исходной функции;

m2= вторая производная от исходной функции;

m4= четвертая производная от исходной функции;

M1=max(abs(m1));

M2=max(abs(m2));

M4=max(abs(m4));

h=(b-a)/n;

R=(M4*(b-a)*h^4)/2880 –Симпсона

при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы Симпсона.

Для нахождения зависимостей погрешности вычисления определенного интеграла на отрезке от числа отрезков разбиения интервала интегрирования разложим подынтегральную функцию в ряд Тейлора:

. (6.22)

Тогда интеграл от данной функции на отрезке будет равен

. (6.23)

Так как формула Симпсона основывается на приближении функции параболой, можно ожидать, что в данном случае погрешность по порядку величины будет определяться членами, пропорциональными третьей производной функции. Однако последовательное повторение действий, выполненных при оценке погрешности метода трапеций, показывает, что эти члены сокращаются в силу их симметричности, поэтому в разложении в ряд Тейлора следует удержать член, пропорциональный . Следовательно, погрешность формулы Симпсона на отрезке пропорциональна , а полная погрешность на отрезке по порядку величины составляет .

41. Оценка погрешности численного интегрирования по правилу Рунге. В каких случаях используется правило Рунге. Чем правило Рунге отличается от других способов оценки погрешности численного интегрирования?

В формулах для оценки погрешности квадратурных формул R используются значения производных подынтегральной функции, что требует дополнительного анализа и вычислений. В связи с этим получило распространение практическое правило Рунге оценки погрешности. Пусть: I – точное значение интеграла, I(n) – значение интеграла вычисленное при n узлах интегрирования h = (b-a)/n, I(2n) – значение интеграла вычисленное при 2*n узлах интегрирования, h = (b-a)/2n. Необходимо определить, с какой точностью вычислен итеграл I(2n), т.е. найти абсолютную погрешность Для непосредственно определения данной погрешности необходимо найти максимум модуля соответствующей производной от интегрируемой функции на отрезке [a, b]. Часто это достаточно трудоемкий или вообще невозможный процесс. Например если интегрируемая функция задана таблично. В таких случаях оценку погрешности величины I(2n) можно провести следующим образом:
Здесь m = 3 для методов средних прямоугольников и трапеций, m = 15 для метода Симпсона.Если решается задача численного вычисления интеграла с заданной точностью, процесс удвоения числа узлов интегрирования продолжается до тех пор, пока величина не станет меньше заданной погрешности. Метод Рунге-Кутта 4-го порядка решение задачи Коши для ДУ в пакете MATLAB реализован в виде функции ode45. Данный метод рекомендуется использовать при первой попытке нахождения численного решения задачи.

42. Сформулировать задачу Коши. Привести не менее двух примеров.

Задача, сводящаяся к решению обыкновенных дифференциальных уравнений. Обычно приходится прибегать к помощи приближенных методов решения подобной задачи. В случае обыкновенных дифференциальных уравнений в зависимости от того, ставятся ли дополнительные условия в одной или нескольких точках отрезка изменения независимой переменной, задачи обычно подразделяются на одноточечные - задачи с начальными условиями или задачи Коши, а также на многоступенчатые.

Постановка задачи:

Требуется найти функцию у = у(х), удовлетворяющую уравнению

(1)

и принимающую при х = х0 заданное значение у0:

y(x0)=y0 (2)

При этом решение необходимо получить в интервале х0 £ х £ хк. Из теории дифференциальных уравнений известно, что решение у(х) задачи Коши (1), (2) существует, единственно и является гладкой функцией, если правая часть F(x, y) удовлетворяет некоторым условиям гладкости.

Примеры задач Коши:

ПРИМЕР 2:

на отрезке [0, 1] c начальным условием y (x= 0) = 1


Примеры постановки задачи Коши
:

Примеры краевых задач:

43. Сформулировать отличие частного решения от общего решения. Пример.

Частное решение дифференциального уравнения - решение, получающееся из общего решения при некотором конкретном выборе произвольных постоянных.
Общее решение дифференциального уравнения — функция наиболее общего вида, которая при подстановке в дифференциальное уравнение вида

обращает его в тождество.

44. Дана задача Коши для ОДУ первого порядка. Определить отрезок [a, b] (с конечными или бесконечными пределами), на котором данная задача Коши имеет единственное решение.





Дата публикования: 2015-02-03; Прочитано: 2518 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.158 с)...