Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы.DOCX
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆
  • – полная погрешность.

    Полная погрешность RR включает в себя:

    • Погрешность исходных данных и математической модели. Возникает по причине неточности исходных данных и несоответствия построенной математической модели реальной ситуации. Таким образом, будет получен результат R1≠R.

      • 1 R R1

    ε1 – неустранимая погрешность.

    • Погрешность метода. Возникает, если выбран приближенный (например, численный) метод. Таким образом, будет получен результат R2≠R1.

      • 2 R1 R2

    ε2 – устранимая погрешность.

    • Погрешность вычислений: 3 R2 R3 .

    Таким образом, полная погрешность

    1. Методы, используемые для отделения корней уравнения с одной переменной

    Отделение корней

    I. Графический способ отделения корней

    а) Теорема. Если на отрезке [a,b] функция y=F(x) определена и непрерывна, и на его концах принимает значения разных знаков (т.е. F(a)F(b)<0), то уравнение F(x)=0 имеет на этом отрезке, по крайней мере, один корень.

    Если функция y=F(x) на отрезке [a,b] строго монотонна, то корень единственный.

    Требуется указать отрезок, содержащий нуль функции.

    Например, пусть требуется отделить корни уравнения x2-x-1=0. Построим график функции y=x2-x-1 и укажем отрезки, содержащие точки пересечения графика функции с осью абсцисс. Искомые промежутки: [-1; 0] [1; 2].

    б) Иногда проще рассмотреть вместо уравнения y=F(x) равносильное ему уравнение f1(x)=f2(x). В этом случае требуется указать отрезок, содержащий абсциссу точки пересечения графиков функций y=f1(x) и y=f2(x).

    Например, пусть требуется отделить корни уравнения x2-x-1=0. Рассмотрим равносильное ему уравнение x2=x+1. Тогда вместо отрезков, содержащих точки пересечения графика функции y=x2-x-1 с

    осью абсцисс, можно указать отрезки, содержащие точки пересечения графиков функций f1(x)=x2 и f2(x)=x+1.

    Искомые промежутки: [-2; 0] [1; 3].

    6

    II. Отделения корней программным способом.

    Пусть имеется уравнение F(x)=0, причем все корни находятся на отрезке [a,b]. Будем вычислять все значения функции y=F(x), начиная с точки x=a, двигаясь вправо шагом h. Если функция на отрезке длины h меняет знак (т.е. F(a)F(b)<0) и монотонна, можно считать, что на этом отрезке ровно 1 корень.

    Правильность нахождения отрезков, содержащих один корень, зависит от характера функции y=F(x) и от величины шага h. При выборе шага должна соблюдаться «золотая середина», т.к. шаг h должен быть с одной стороны достаточно малым, чтобы не произошло потери корней, а с другой стороны не настолько маленьким, чтобы число отрезков не было слишком большим.

    1. Уточнение корней методом половинного деления. Алгоритм, блок-схема.

    Пусть1) функция y=F(x) определена и непрерывна на отрезке [a,b].

      1. F(a)F(b)<0

    Требуется найти корень на отрезке с точностью ε.

    Разделим отрезок [a,b] пополам точкой ca 2 b . Если F (c)  0 , то возможны два случая:

      1. F(x) меняет знак на отрезке [a; c];

    1. F(x) меняет знак на отрезке [c; b].

    Выбираем тот отрезок, на котором функция меняет знак. Если F(x) меняет знак на отрезке [a; c], то b:=c; если F(x) меняет знак на отрезке [c; b], то a:=c. Условие окончания счета: ba .

    Корень уравнения: xa 2 b . Погрешность метода: dxb 2 a .

    Рассмотрим положительные и отрицательные стороны метода половинного деления.

    «Плюсы»:

    «Минусы»:

    надежность

    медленная сходимость

    не требует приведения к

    метод не применим для корней

    специальному виду

    четной кратности:

    • не требует дифференцируемости

    функции

    7

    • устойчив к ошибкам округления

    y

    y=F(x)

    c2=a

    O a c1=b c0=b b x

    Число шагов при заданном ε можно оценить следующим образом: |ξ–xk|<(b–a)/2k+1; где xk – это k-е приближение к корню.

    • – точный корень.

    |ξ–xk|<(b–a)/2k+1<ε 2k+1>((b–a)/ε) k+1>log2((b–a)/ε); k>log2((b–a)/ε)–1.

    Недостаток: метод трудоёмок.

    Достоинство: абсолютно устойчив.

    8

    1. Уточнение корней методом простой итерации. Теорема, алгоритм геометрическая иллюстрация. Оценка погрешности метода.

    Заменим уравнение F(x)=0 равносильным уравнением x = f(x). Теорема.

    Пусть уравнение x=f(x) имеет единственный корень на отрезке [a,b] и выполнены условия:

    1. функция f(x) определена и дифференцируема на отрезке [a,b];

    2) x [a,b] f(x) [a,b]

    1. q x[a,b] |f’(x)|q<1

    Тогда итерационная последовательность xn=f(xn-1) (n=1,2,...) сходится при любом начальном члене x0[a,b].

    Таким образом, наша задача: преобразовать уравнение F(x)=0 к виду x = f(x), удовлетворяющему условиям теоремы 1-3 (хотя итерационная последовательность может сходиться и при невыполнении некоторых условий).

    • зависимости от вида функции сходимость может происходить ступеньками либо по спирали.

    y

    y=x

    y

    y=x

    f(x2)

    y=f(x)

    y=f(x)

    f(x1)

    f(x0)

    f(x1)

    f(x2)

    O

    x0

    x1

    x2 x3

    x

    f(x0)

    O

    x0 x

    x1 x3

    x2

    Оценка погрешности метода итераций

    Пусть xn – приближение к истинному значению x* корня уравнения x=f(x).

    Абсолютная ошибка xn=|x*-xn|.

    Для оценки погрешности n-го приближения используется формула xn

    q n

    x x

    0

    .

    1  q

    1

    Приняв за нулевое приближение xn-1 и учитывая, что при 0<q<1 будет qn<q, для оценки

    погрешности n-го приближения можно использовать формулу xn

    q

    xn xn1

    .

    q

    1

    Значение q можно получить как верхнюю грань модуля производной |f’(x)| при x[a,b].

    Чем q меньше, тем быстрее сходится ряд.

    Чтобы

    xn

      достаточно потребовать

    q

    xn

    xn1

      , откуда получим условие

    q

    1

    окончания счета xnxn1  (1 q)

    q

    Преобразование к итерационному виду

    9

    1. Универсальный способ приведения уравнения F(x)=0 к виду x=f(x).

    Уравнение F(x)=0 приводится к равносильному

    уравнению x = x – m F(x),

    таким

    образом, f(x) = x – m F(x).

    Исходя из третьего условия теоремы: (q)

    (x[a,b]) [ |f’(x)|q<1] следует, что должно

    выполняться неравенство: 0 < |1– mF’(x)| < 1.

    Достаточно

    подобрать

    m так, чтобы выполнялось

    неравенство 0<mF’(x)<1,

    откуда

    следует m

    1

    и 0 

    F (x)

     1 .

    max F (x)

    max F (x)

    F (x)

     1 

    min F (x)

    .

    Тогда q можно принять q  max

    1 

    max F (x)

    max F (x)

    Примечания:

    Если (x[a,b])

    f’(x)<0,

    то вместо уравнения F(x)=0

    переходим к

    равносильному уравнению:

    – F(x)=0 .

    Если при приведении

    уравнения F(x)=0

    к итерационному виду

    x=f(x)

    получилось, что x[a,b]

    |f’(x)|>1, то от функции вида y=f(x)переходят к функции

    x=g(y),

    обратной для

    f(x).

    При этом рассматривается уравнение y=g(y) или

    x=g(x),

    причем по свойству обратных функций g (x) 

    1

     1.

    f (x)

    1. Иногда удается преобразовать уравнение F(x)=0 к виду x=f(x) более простым способом, выразив x из уравнения.

    10

    1. Метод касательных(Ньютона). Сходимость метода, оценка погрешности, геометрическая интерпретация.

    Пусть функция y=F(x) определена, непрерывна, монотонна и дифференцируема в некоторой окрестности корня.Требуется найти корень на отрезке с точностью ε.

    На kой итерации проводится касательная к графику функции y=F(x) при x=ck и ищется точка пересечения касательной с осью абсцисс. При этом достаточно задать начальное приближение c0, а не указывать отрезок [a,b].

    Уравнение касательной к графику функции y=F(x) в точке x0 имеет вид:

    y F(x0 ) F (x0 )(x x0 ) . Пересечение с осью Ox находится из условия y=0, откуда

    x x0

    F (x0 )

    F (x0 )

    Таким образом, получим формулу для нахождения последовательности c1, c2… точек

    пересечения касательных с осью абсцисс: ci1ci

    F (ci )

    F (ci

    )

    Условие окончания счета: ci1ci

    Корень уравнения: ci+1.

    y

    y=F(x)

    c1

    c2

    c0

    x

    O

    var c,e,g: real;

    N:integer;

    function f(x: real):real;

    begin

    {записать, функцию в виде f:=[математическое выражение]}

    f:=x*x*x-x+4;end;

    function df(x: real):real;

    begin {записать, производную функции f в виде

    df:=[математическое выражение]} df:=3*x*x-1;end; begin

    write('Введите начальное приближение - c: ');readln(c); write('Введите требуемую погрешность - e:'); readln(e);

    N:=0;

    repeat N:=N+1;

    g:=c;

    c:=c-f(c)/df(c);

    until abs(g-c)<e;

    writeln('Приближенное значение корня - Х = ',c); writeln('Число итераций - N = ',N); readln end.

    11

    1. Метод хорд. Сходимость метода, оценка погрешности, геометрическая интерпретация.

    Пусть1) функция y=F(x) определена и непрерывна на отрезке [a,b].

    1. F(a)F(b)<0

    Требуется найти корень на отрезке с точностью ε.

    В качестве приближений к корню принимаются значения c0, c1, c2… точек пересечения

    хорды с осью абсцисс ca

    b a

    F (a)

    или c

    a F (b) b F (a)

    F (b) F (a)

    F (b) F (a)

    Точка c делит отрезок [a,b] на две части. Ту из них, на которой функция знака не меняет, отбрасываем (аналогично методу половинного деления).

    • качестве условия окончания счета можно принять условия: ci ci1 (Минаева)

    F (ci ) (Турчак).

    Корень уравнения: ci.

    y y=F(x)

    B

    B1

    B2

    c2

    O

    a

    c1

    c0

    b

    x

    A

    x1* , x2* ,..., xn* , которые превращают

    12

    1. Решение систем линейных алгебраических уравнений. Прямые и итерационные методы решения. Метод Гаусса, алгоритм, блок схема.

    Рассмотрим систему m линейных уравнений с n неизвестными:

    a

    x

    a

    x

    ...

    a

    x

    b

    11

    1

    12

    2

    1n

    n

    1

    a21x1

    a22 x2

    ...

    a2n xn

    b2

    ......................

    a

    x

    a

    m2

    x

    2

    ...

    a

    mn

    x

    n

    b

    m1 1

    1

    Ее можно записать в матричном виде A x = B, где

    a

    a

    ...

    a

    b

    x

    11

    12

    1n

    1

    1

    a21

    a22

    ...

    a2n

    b2

    x2

    A

    ...

    b

    ...

    x

    ...

    am 2

    am1

    amn

    bm

    xm

    Решить СЛУ – значит найти набор таких чисел

    уравнения в верные равенства.

    СЛУ совместна, если она имеет хотя бы одно решение.

    СЛУ несовместна (противоречива), если она не имеет решения.

    Совместная СЛУ определенна, если она имеет единственное решение и неопределенна, если более одного решения.

    СЛУ имеет единственное решение, если ранг матрицы A равен рангу расширенной матрицы (A|b): rang(A) = rang(A|b).

    СЛУ имеет единственное решение, если rang(A) = n и бесконечно много решений, если rang(A) < n.

    Если матрица A – квадратная и det(A)0, то она называется невырожденной.

    СЛУ с n неизвестными, имеющими невырожденную матрицу A, совместна и имеет единственное решение.

    «Минусы»

     Требуют приведения к определенному виду

    13

    Единичной матрицей E называется квадратная матрица, у которой на главной диагонали стоят единицы, а на остальных местах – нули.

    Обратной матрицей по отношению к матрице A называется такая матрица A-1, что A A-

    1=A-1 A = E.

    Матрица AT, полученная перестановкой в матрице A строк со столбцами, называется транспонированной.

    Квадратная матрица симметрична, если A=AT.

    Все численные методы решения СЛУ можно разделить на прямые, итерационные и вероятностные.

    Прямые методы дают решение системы за конечное число арифметических операций.

    Например, метод Крамера (метод определителей),

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

    «Плюсы»

    «Минусы»

    Просты

     Достаточно громоздкие вычисления

    Универсальны

     Не требуют приведения к

    определенному виду

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

    Например, метод простой итерации, метод Зейделя.

    «Плюсы»

     Требуют мало места в памяти  Самоисправляющиеся методы

    Вероятностные методы носят общее название – методы Монте-Карло.

    Пусть получено решение СЛУ:

    ~

    . Рассматривается вектор невязки

    ~

    . Если

    x

      b Ax

    велико, то где-то допущена ошибка, если мало, то ошибка отсутствует.

    Метод Гаусса.

    Метод Гаусса относится к точным методам, однако вычислительная ошибка присутствует всегда (ошибка округления и, возможно, ошибка исходных данных). Рассмотрим систему m линейных уравнений с n неизвестными:

    a

    x

    a

    x

    ...

    a

    x

    b

    11

    1

    12

    2

    1n

    n

    1

    a21x1

    a22 x2

    ...

    a2n xn

    b2

    ......................

    a

    x

    a

    m2

    x

    2

    ...

    a

    mn

    x

    n

    b

    m1 1

    n

    Алгоритм состоит из двух этапов.

    I. Прямой ход – приведение матрицы к треугольному виду (сверху вниз):

    x

    a

    x

    2

    ...

    a

    x

    n

    b

    1

    12

    1n

    1

    a

    x

    2

    ...

    a

    x

    n

    b

    22

    2n

    2

    ......................

    xn

    bn

    14

    1. Обратный ход – определение неизвестных (снизу вверх).

    Ручные вычисления по схеме единственного деления оформляют в виде таблицы с контролем вычислений, для чего в таблицу включены

    • столбец контрольных сумм ,

    • столбец сточных сумм S.

    Контроль в прямом ходе:

    • После внесения коэффициентов при неизвестных и свободных членов исходной системы находят контрольные суммы (суммы коэффициентов и свободных членов по строкам) и вносят их в столбец .

    • Далее, выполняя преобразования, над контрольными суммами производятся те же преобразования, что и над свободными членами.

    • После выполнения каждого преобразования находят строчную сумму результатов и помещают ее в столбец S.

    • При отсутствии вычислительных ошибок числа в столбцах  и S должны практически совпадать.

    Контроль в обратном ходе:

    При безошибочном выполнении вычислений в столбце  должны быть на единицу больше соответствующих значений неизвестных из столбца свободных членов Рассмотрим примеры решения СЛУ методом Гаусса

    Разделы

    x1

    x2

    x3

    св чл

    сумма

    S

    3,25

    14,52

    -1,32

    367,58

    384,03

    32,02

    -4,36

    5,73

    516,91

    550,3

    А

    7,21

    11,92

    -41,46

    -886,32

    -908,65

    1

    4,4677

    -0,4062

    113,1015

    118,1631

    118,163

    0

    -147,4158

    18,7365

    -3104,6000

    -3233,2825

    -3233,2793

    0

    -20,2921

    -38,5313

    -1701,7818

    -1760,606

    -1760,6052

    А1

    1

    -0,1271

    21,0602

    21,9331

    21,9331

    0

    -41,1104

    -1274,4261

    -1315,5373

    -1315,5365

    А2

    1

    31,0001

    32,0001

    32,0001

    1

    31,0001

    32,0001

    В

    1

    0

    25,0003

    26,0003

    1

    0

    0

    13,9999

    15

    15

    1. Решение систем линейных алгебраических уравнений. Требования к сходимости итерационного процесса.

    Первая половина в билете №9.

    Функцию (x,y), определяющую расстояние между точками x и y множества X назовем метрикой, если

    1. (x,y)0

    2. (x,y)=0 x=y

    3. (x,y)= (y,x)

    4. (x,y) (x,z)+ (z,y).

    Множество X с введенной метрикой  назовем метрическим пространством. Последовательность точек метрического пространства называется фундаментальной,

    если   0N m, nN (xm , xn )  .

    Пространство называется полным, если в нем любая фундаментальная последовательность сходится.

    Отображение F пространства E в себя называется сжимающим, если

    , 0  1x, yE(F(x), F( y))   (x, y)

    1. – неподвижная точка, если F(x)=x.

    Оценка расстояния между неподвижной точкой и приближением x(k) производится следующим образом:

    x, x(k ) 

    k

    x(0) , x(k ) или x, x(k ) 

    x(k 1) , x(k ) .

    1 

    1 

    Таким образом, чтобы погрешность вычислений была меньше наперед заданного числа

    ε, достаточно потребовать x(k 1) , x(k ) 

    1 

    .

    Рассмотрим 3 типа метрики.

    Пусть x(x1,x2,…,xn) и y(y1,y2,…,yn) – две точки n-мерного пространства.

    I. 1x, y  max

    xi

    yi

    Максимальная из сумм модулей коэффициентов при неизвестных в

    1in

    правой

    части

    системы, взятых по

    строкам, должна быть меньше единицы:

    n

    1 max1in

    aij 1

    1. 1

    n

    II. 21x, y   xiyi Максимальная из сумм модулей коэффициентов при неизвестных

    i1

    в

    правой части

    системы,

    взятых

    по столбцам, должна быть

    меньше

    единицы:

    n

    2

    max1jn

    aij

     1

    i1

    III. 3x, y 

    n

    yi 2 Корень квадратный из суммы квадратов коэффициентов при

    xi

    i1

    неизвестных

    в

    правой

    части

    системы, должен быть

    меньше

    единицы:

    n

    n

    3  aij2 1 1

    i1

    j 1

    СЛУ преобразуется таким образом, чтобы по одной из метрик выполнялось α < 1.

    16

    x

     

    x

    x

    ...

    x

    1

    11

    1

    12

    2

    1n

    n

    1

    x2

     21x1

    22 x2

    ...

    2n xn

    2

    ......................

    x

    n

     

    x

    m2

    x

    2

    ...

    mn

    x

    n

    n

    m1 1

    При этом СЛУ задает отображение, которое при α < 1 будет сжимающим. Значит, взяв любую точку в качестве начального приближения, получим последовательность точек, которая будет сходиться к неподвижной точке; это точка и будет решением системы. Чтобы привести СЛУ к итерационному виду нужно:

    1) с помощью равносильных преобразований привести систему к виду с преобладающими диагональными коэффициентами (по абсолютной величине);

    2) разделить все уравнения на соответствующие диагональные коэффициенты и выразить из каждого уравнения неизвестное с коэффициентом, равным единице.

    Если для этой системы α < 1, то система задает сжимающее отображение.

    1. Оценка погрешности метода простой итерации. x=Bx+d;

    Пусть ||B||<1, имеем:

    x*=Bx*+d;

    x(k)=Bx(k-1)+d;

    x*=x(k)+B(x*–x(k-1));

    Вычтем из каждой части x(k-1):

    x*–x(k-1)=x(k)–x(k-1)+B(x*–x(k-1));

    ||x*–x(k-1)||≤

    ||x(k)–x(k-1)||+||B||•||x*–x(k-1)||;

    ||x*–x(k-1)||•(1–||B||)≤

    ||x(k)–x(k-1)||;

    ||x*–x(k-1)||≤

    ||x(k)–x(k-1)||/(1–||B||);

    Кроме того:

    ||x*–x(k)||≤||B||•||x*–x(k-1)||;

    ||x*–x(k)||≤(||B||/(1–||B||))•||x(k)–x(k-1)||; (1) – Разность между точным решением и k-ым приближением.

    Пусть требуется найти решение с точностью ε. Из (1) имеем:

    (||B||/(1–||B||))•||x(k)–x(k-1)||<ε;

    Достаточно выполнение условия:

    ||x(k)–x(k-1)||≤((1–||B||)•ε)/||B||; – критерий выхода.

    17

    1. Метод Зейделя

    При решении СЛУ методом простой итерации каждый шаг итерационного процесса состоит в переходе от уже имеющегося приближения значений неизвестных к новому приближению.

    Основная идея метода Зейделя состоит в том, что на каждом шаге итерационного процесса при вычислении значений yi учитываются уже полученные значения y1, y2,…,yi-

    1.

    I. Условие α<1 является достаточным для сходимости итерационного процесса метода Зейделя. Причем метод Зейделя обеспечивает более быструю сходимость, чем метод простой итерации.

    Рассмотрим решение системы трех линейных уравнений с тремя неизвестными методом Зейделя (взяв за основу метод итерации)

    program slu_zejdel1;

    { *** с использованием евклидовой метрики *** } var p,b,x1,x2,x3,y1,y2,y3,a,e: real;

    1. integer;

    begin

    write('Введите x1, x2, x3 : '); readln(x1,x2,x3);

    write('Введите A, E : '); readln(a,e);

    b:=e*(1-a)/a;

    N:=0; {число итераций}

    repeat

    N:=N+1;

    y1:= 0.1362*x2-0.1790*x3+16.1433;

    y2:=-0.2238*y1+0.0909*x3+25.3154;

    y3:= 0.1739*y1+0.2875*y2+21.3777;

    p:=sqrt(sqr(x1-y1)+sqr(x2-y2)+sqr(x3-y3));

    x1:=y1; x2:=y2; x3:=y3;

    until p<=b;

    writeln('x1 = ',x1:8:6);

    writeln('x2 = ',x2:8:6);

    writeln('x3 = ',x3:8:6);

    writeln('Число итераций - N = ',N);

    readln

    end.

    Введите x1, x2, x3 : 0 0 0

    Введите A, E : 0.2218 0.0001

    x1 = 13.999370

    x2 = 25.000219

    x3 = 30.999753

    Число итераций - N=6

    Как видно из примера, по сравнению с методом итераций решение получено за меньшее количество шагов.

    18

    II. Рассмотрим практическую схему преобразования исходной СЛУ, гарантирующую сходимость метода Зейделя.

    Пусть система записана в матричной форме: Ax=b.

    Умножим левую и правую части слева на матрицу AT: ATAx= AT b.

    Обозначим : ATA=C, AT b=d.

    Преобразованная система станет иметь вид: Cx=d. Такую систему называют нормальной:

    • матрица C является симметричной;

    • все элементы главной диагонали матрицы C положительны. Нормальную систему легко привести к виду:

    xi ij x j

      j ,

    (i  1,2,, n) , где i  

    cij

    ( ji)

    и i

    di

    .

    cii

    j i

    cii

    Вычислительные формулы имеют вид:

    n

    y1 1 j x j 1

    j 1

    n

    y2

    21 y1 2 j x j 2

    j 1

    ...

    i1

    n

    ij y j ij x j i

    yi

    j 1

    j i

    ...

    n1

    yn nj y j nn xn n

    j 1

    Рассмотрим на примере.

     3,25

    14,52

    1,32 

    367,58

     3,25

    32,02

    7,21

     4,36

     4,36

    A  

    32,02

    5,73

    b  

    516,91

    AT  

    14,52

    11,92

    7,21

    11,92

     41,46

     886,32

    1,32

    5,73

     41,46

    1087,827

     6,474

    119,742 

    11355,726 

     6,474

     538,3524

    D

     7481,4004

    C AT A  

    371,9264

    AT b  

    119,742

     538,3524

    1753,5069

    39223,5159

    После деления на диагональные элементы получим:

    1

     0,0060

     0,1101

    10,4389 

     0,0174

    1,4475

      

    1

      

     20,1153

     0,0683

     0,3070

    1

    22,3686

    Рассмотрим решение системы трех линейных уравнений с тремя неизвестными методом Зейделя (взяв в качестве метрики, используемой в программе, 1 x, y  max xiyi ).

    1in

    program slu_zejdel2;

    var x1,y1,x2,y2,x3,y3,e,a,b,c: real;

    1. integer;

    begin

    write('Введите X1, X2, X3 - '); readln(x1,x2,x3); write('Введите погрешность Е - '); readln(e); N:=0; {число итераций}

    19

    repeat

    N:=N+1;

    y1:= 0.0060*x2+0.1101*x3+10.4389;

    y2:= 0.0174*y1+1.4475*x3-20.1153;

    y3:= 0.0683*y1+0.3070*y2+22.3686;

    a:=abs(y1-x1); b:=abs(y2-x2); c:=abs(y3-x3);

    if a<b then a:=b;

    if a<c then a:=c;

    x1:=y1; x2:=y2; x3:=y3;

    until a<=e;

    writeln('X1 = ',x1:11:8);

    writeln('X2 = ',x2:11:8);

    writeln('X3 = ',x3:11:8);

    writeln('Число итераций - N = ',N);

    readln

    end.

    Введите X1, X2, X3 - 0 0 0

    Введите погрешность Е - .0001

    X1 = 14.00204110

    X2 = 25.00128107

    X3 = 31.00033269

    Число итераций - N = 18

    20

    1. Постановка задачи интерполирования. Параболическая интерполяция. Единственность задачи интерполирования многочленами.

    Пусть известны значения функции f в некоторых точках:

    x

    x0

    x0

    x0

    …

    x0

    (1)

    f(x)

    y0

    y0

    y0

    …

    y0

    Требуется получить y=f(x) для x[x0,xn], где xxi. При этом аналитическое выражение а) не пригодно для вычислений либо б) неизвестно.

    В этом случае строим приближающую функцию F(x) f(x), такую что F(x) = f(x) при

    x=xi (i=0,1,…,n), т.е. F(x0)=y0, F(x1)=y1, …, F(xn)=yn

    (2)

    Нахождение

    приближенной

    функции

    называется

    интерполяцией

    (интерполированием), точки x0, x1, …, xn узлами интерполяции.

    Будим искать функцию F(x) в виде многочлена степени n:

    Pn(x) = a0 xn + a1 xn-1 + … + an-1 x + an

    Этот многочлен имеет n+1 коэффициент. Наложим на него n+1 условий (2). Таким образом можно однозначно определить коэффициенты многочлена.

    Рассмотрим получившуюся систему уравнений: ak xknkyi (i  0, 1, ..., n) .

    Ее определитель (определитель Вандермонда) отличен от нуля:

    x n

    x n1

    ...

    x

    0

    1

    0

    0

    x n

    x n1

    ...

    x

    1

     0

    1

    1

    1

    ...

    x n

    x n1

    ...

    x

    n

    1

    n

    n

    Значит, интерполяционный многочлен Pn(x) для функции f, заданной таблично,

    существует и единственный. При этом какие-то коэффициенты могут равняться нулю (в том числе и a0); следовательно, интерполяционный многочлен имеет степень не

    большую, чем n.

    Рассмотрим набор точек (xi; yi) i=0,1,…,n задающих некоторую таблицу – таблицу данных.

    Формулировка задачи: для (n+1) точек заданы значения x0, x1,…, xn соответствующие некоторой функции. y0=f(x0); y1=f(x1); …; yn=f(xn) функция неизвестна, и задана таблично. Требуется подобрать такую функ. φ(x), чтобы:

    φ(xi)=yi; x=xi;

    φ(x)≈f(x); x≠xi;

    точки xi называют узлами интерполяции.

    функ. φ(x) наз. интерполирующей функ.

    Саму задачу называют задачей интерполяции.

    Параболическая интерполяция.

    Будем выбирать интерполирующую функ. φ(x) из класса многочленов и такую интерполяцию будем называть параболической. Многочлен будем называть интерполяционным.

    Покажем, что задача параболической интерполяции имеет единственное решение.

    Пусть для (n+1) точки (xi, yi) построен интерполяционный многочлен:

    Pn(x)=c0xn+c1xn-1+…+cn; (1)

    найдём коэф. ci из условия:

    21

    Pn(xi)=yi; (2)

    для этого подставим последовательно значения x0, …, xn в (1) и приравняем к соответствующим значениям yi, т.е. потребуем (2):

    c0x0n+c1x0n-1+…+cn=y0|

    c0x1n+c1x1n-1+…+cn=y1} (3)

    .....................................|

    c0xnn+c1xnn-1+...+cn=yn|

    1. представляет собой сист. лин. алг. ур. относительно ci. Определитель сист., это так

    называемый определитель Вандермонда:

    |x0n x0n-1 … 1|

    |x1n x1n-1 … 1|

    |……………|

    |xnn xnn-1 … 1|

    который отличен от 0 если xi≠xj => коэф. ci определяются из (3) однозначно и задача параболической интерполяции имеет ед. реш.

    1. Интерполяционный многочлен Лагранжа.

    Пусть функция задана таблицей (1). Построим интерполяционный многочлен Ln(x), чья степень не превосходит n, и для которого выполнены условия (2).

    Ln(x) ищем в виде Ln(x)= l0(x)+ l1(x)+ l2(x)+…+ ln(x),

    Где li(x) – многочлен степени n, причем li (xk

    y

    ,

    если

    i k

    )  

    i

    i k

    0,

    если

    Многочлен li(x) составлен следующим образом:

    li(x)=ci (x-x0) (x-x1)… (x-xi-1) (x-xi+1)… (x-xn),

    где

    ci=const.

    ci

    yi

    (xi

    x0 )...(xi xi1 )(xi xi1 )...(xi xn )

    Таким образом, получим интерполяционный многочлен Лагранжа:

    n

    (xx0 )...(xxi1 )(xxi1 )...(xxn )

    Ln (x) yi

    .

    (xix0 )...(xixi1 )(xixi1 )...(xixn )

    i0

    Погрешность вычисляется по формуле:

    Rn (x)

    M n1

    n1 (x)

    , x [x0 , xn ] , где

    M n1 max

    f

    (n 1)!

    n1 (x)  (xx0 )(xx1 )...(xxn ) .

    const k=30;

    type vektor=array[1..k] of real; var x,y: vektor;

    n,i,j: byte;

    l,f,a,m: real;

    begin

    write('Введите количество узлов интерполирования writeln('Введите парами значения Х и Y');

    for i:=1 to n do readln(X[i],y[i]); repeat

    write('Введите заданное значение аргумента - '); readln(A);

    (n1) (x)

    - '); readln(n);

    22

    F:=0;

    for i:=1 to n do

    begin L:=1;

    for j:=1 to n do

    if i<>j then L:=L*(A-X[j])/(X[i]-X[j]);

    L:=L*Y[i];

    F:=F+L; end;

    writeln('При Х=',A:5:3,' F(',A:5:3,') = ',F:10:6);

    writeln; writeln('Если хотите продолжить, введите 1,'); writeln('в противном случае введите 0'); readln(m)

    until M=0 end.

    23

    1. многочлен Ньютона для равноотстоящих узлов Рассмотрим случай, когда h=xi+1 – xi=const (i=0, 1, …). Рассмотрим конечные разности:

    yi yi1 yi – конечные разности 1-го порядка – разности между значениями функции в

    соседних узлах.

    2 yi  yi1  yi

     ( yi2yi1 )  ( yi1yi )  yi2  2 yi1yi – конечные разности 2-го порядка –

    разности между конечными разностями 1-го порядка.

    3 yi  1 yi1  2 yi ( yi3 2yi2 yi1 ) ( yi2 2yi1 yi ) yi3 3yi2 3yi1 yi

    –конечные

    разности 3-го порядка.

    …

    k(k 1)

    k yik

    kyik 1

    yik 2 ... (1)k yi

    – конечные разности k-го порядка.

    2!

    Конечные разности удобно вычислять в таблице:

    xi

    yi

    yi

    2 yi

    3 yi

    x0

    y0

    y0

    2 y0

    3 y0

    x1

    y1

    y1

    2 y1

    3 y1

    x2

    y2

    y2

    2 y2

    x3

    y3

    y3

    x4

    y4

    Первая интерполяционная формула Ньютона

    Будем искать интерполяционный многочлен Ньютона в виде многочлена n-ой степени:

    Pn(x) = a0+ a1(x-x0) + a2(x-x0)(x-x1) +…+ an(x-x0)…(x-xn-1) (3)

    Коэффициенты a0, a1, …, an находятся из условия совпадения значения исходной функции f(x) и многочлена Pn(x) в узлах интерполяции: akk y0 .

    k!h k

    Пусть x x0  t , тогда xx0  ht , соответственно h

    x x x xh

    • t 1

    hh

    1. x2 x x0 3h t 2

    hh10

    …

    Подставив в формулу (3), получим:

    P (x) P (x

    th) y

    ty

    t(t 1)

    2 y

     ... 

    t(t 1)...(t n 1)

    n y

    –

    первая

    0

    0

    0

    0

    0

    n

    n

    2!

    n!

    интерполяционная формула Ньютона.

    Погрешность вычислений оценивается следующим образом:

    R

    (x)

    t(t 1)(t 2)...(t n)

    n1 y

    n

    (n 1)!

    t(t 1)

    Так при n=2

    P (x) y

    ty

    2 y

    0

    0

    0

    n

    2!

    t(t 1)(t 2)

    R

    (x)

    3 y , где 3 y max

    3 y

    m

    n

    3!

    0m3

    24

    Вторая интерполяционная формула Ньютона

    Вторая интерполяционная формула Ньютона применяется, когда значение аргумента ближе к концу отрезка интерполяции (формула для интерполирования назад). Интерполяционный многочлен ищется в виде многочлена n-ой степени:

    Pn(x) = a0+ a1(x-xn) + a2(x-xn)(x-xn-1) +…+ an(x-xn)…(x-x1) (4) Коэффициенты a0, a1, …, an находятся из условия совпадения значения исходной

    функции f(x) и интерполяционного многочлена P (x) в узлах: a

    k ynk

    .

    k

    n

    k!hk

    x xn

    Подставив

    ak в (4)

    и перейдя

    к переменной t

    , получим вторую

    h

    интерполяционную формулу Ньютона:

    Pn (x) Pn (xn

    th) yn tyn1

    t(t 1)

    2 yn2

     ... 

    t(t 1)...(t n 1)

    n y0 .

    2!

    n!

    Погрешность вычислений оценивается следующим образом:

    R (x)

    t(t 1)(t 2)...(t n)

    n1 y .

    n

    (n 1)!

    Рассмотрим задачу субтабулирования (уплотнения таблицы) функции на отрезке.

    Введем следующие обозначения:

    a, b – концы субтабулирования;

    H0 – старый шаг таблицы;

    1. – новый шаг таблицы;

    y1, y2, y3 – конечные разности 1-го, 2-го, 3-го порядка; d – границы погрешности метода.

    Для вычисления конечных разностей составляется таблица:

    xi

    yi=sin xi

    yi

    2 yi

    3 yi

    0,150

    0,14944

    0,00494

    0,00000

    -0,00001

    0,155

    0,15438

    0,00494

    -0,00001

    0,00001

    0,160

    0,15932

    0,00493

    0,00000

    0,00000

    0,165

    0,16425

    0,00493

    0,00000

    -0,00001

    0,170

    0,16918

    0,00493

    -0,00001

    0,175

    0,17411

    0,00492

    0,180

    0,17903

    начало

    Блок-схема уплотнения таблиц функций:

    Ввод a, b, h0, h,

    x:=a

    x≤b

    +

    t:=(x-a)/h0

    y:=y0+t*y1+t*(t-1)*y2/2

    Вывод x, y, d

    x:=x+h

    конец

    25

    Программа уплотнения таблиц функций (субтабулирования)

    program subtab;

    var a,b,d,h0,h,y,y0,y1,y2,y3,x,t : real;

    begin

    writeln;

    write('Введите a, b, H0, H - ');

    readln(a,b,H0,H);

    write('Введите Y0, конечные разности Y1, Y2, y3 - '); readln(Y0,Y1,Y2,y3);

    writeln(' X Y

    x:=a;

    while x<=b do

    begin t:=(x-a)/h0;

    D');

    y:=y0+t*y1+t*(t-1)*y2/2;

    d:=y3*t*(t-1)*(t-2)/6;

    writeln(x:8:4, y:12:6, d:14:8);

    x:=x+h

    end;

    readln;

    end.

    Введите a, b, H0, H - 0.155 0.165 0.005 0.001 Введите Y0, конечные разности Y1, Y2, y3 –

    0.15438

    0.00494 -0.00001 0.00001

    X

    Y

    D

    0.1550

    0.154380

    0.00000000

    0.1560

    0.155369

    0.00000048

    0.1570

    0.156357

    0.00000064

    0.1580

    0.157345

    0.00000056

    0.1590

    0.158333

    0.00000032

    0.1600

    0.159320

    0.00000000

    0.1610

    0.160307

    -0.00000032

    0.1620

    0.161293

    -0.00000056

    0.1630

    0.162279

    -0.00000064

    0.1640

    0.163265

    -0.00000048

    0.1650

    0.164250

    -0.00000000

    26

    1. Численное интегрирование. Квадратурные формулы Ньютона-Котеса.

    Численное интегрирование Для вычисления определенного интеграла используется

    b

    формула Ньютона-Лейбница:  f (x)dxF (b)  F (a) ,

    a

    где F(x) – одна из первообразных функции f(x) (такая что F’(x)=f(x)).

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

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

    b

    b

    Считая f(x) Ln(x), на [a,b], получим  f (x)dx  Ln (x)dx

    a

    a

    b

    n

    (xx0 )...(xxn )

    f (x)dx  yi

    dx

    [(xix0 )...(xi

    xi1 )(xi

    a

    i0

    xi1 )...(xi xn )](x xi )

    n

    b

    (xx0 )...(xxn )

    yi

    dx

    [(x

    i

    x

    0

    )...(x

    i

    x

    i

    1

    )(x

    i

    x

    i1

    )...(x

    i

    x

    n

    )](xx

    )

    i0

    a

    i

    не зависит от x, обозначим через Ai

    Перейдем всюду к переменной t:

    x x0

    t , откуда dt

    dx

    , dxhdt

    b a

    dt .

    h

    h

    n

    При

    x = x0

    t = 0;

    …

    x = xn

    t

    xn x0

    n .

    h

    Тогда

    A

    b a n (1)ni t(t 1)...(t n)

    dt .

    i

    n

    i! (n i)! (t i)

    0

    Таким образом, A =(b-a) H , где H

    1 n

    (1)ni t(t 1)...(tn)

    dt , i=0,1,…,n.

    i

    n

    i

    i

    i! (n i)! (t i)

    0

    b

    • f (x) (b a) yi H in

    a i0

    {

    27

    }

    28

    17.Формула трапеций. Геометрическая иллюстрация. Оценка погрешности Формула трапеций

    b

    n

    Найдем коэффициенты формулы  f (x)  (ba) yi H i

    ,

    a

    i0

    где H i

    1 n

    (1)ni t(t 1)...(tn)

    dt , i=0,1,…,n при n=1.

    n

    i! (n i)! (t i)

    0

    0

    1

    1

    (1)1 t(t 1)

    1

    t 2

    1

    1

    При i = 0

    H

    1 0

    0!1! t

    dt  

    (t 1)dt  

    2

    t

    2

    0

    0

    1

    1 1

    (1)0 t(t 1)

    1

    t

    2

    1

    При i = 1

    H 0

    dt

    tdt

    1

    1! 0! (t 1)

    2

    2

    b

    0

    n

    0

    0

    Формула  f (x)  (ba) yi H i

    на отрезке [x0, x1] примет вид:

    a

    i0

    x1

    1

    1 

    h

    f (x)dx (x x0 ) y0

    y1

     

    ( y0y1 )

    2

    2

    2

    x0

    b

    y

    y

    Для отрезка [a, b]: 

    0

    n

    f (x)dx h

    y1 y2

     ...  yn1

    (*)

    2

    a

    2 

    b

    b

    Рассмотрим погрешность:  f (x)dx Ln (x)dxRn (x)

    a

    a

    На отрезке [x

    , x ] погрешность

    R  

    h3

    f ( ),

     [x

    , x ] .

    0

    1

    12

    0

    1

    При f ()  0 (*) дает значение интеграла с избытком; при f ()  0 (*) дает значение интеграла с недостатком.

    На отрезке [a, b] R  

    h3 n

    f ( ),

     [a, b] .

    n

    12

    b a

    h2

    M max

    

    Поскольку hn=|b-a|, то

    , где

    .

    Rn

    M

    12

    x[a,b]

    Программа численного интегрирования методом трапеций:

    program lab_4_1a;

    var i,n :integer;

    s,h,a,b,x :real;

    function f(x: real):real;

    begin {функция в виде f:=[математическое выражение]} f:=sin(x); end; begin

    write('Введите левую и правую границы отрезка - '); readln(a,b); write('Введите шаг - '); readln(h); n:=round(abs((b-a)/h));

    s:=0;

    for i:=0 to n do

    begin

    x:=a+h*i;

    s:=s+f(x);

    end;

    s:=h*(s-(f(a)+f(b))/2);

    29

    writeln('Искомый определенный интеграл равен ',s:10:6); readln;

    end.

    1. Формула Симпсона. Алгоритм, блок-схема. Геометрическая иллюстрация. Оценка погрешности.

    b

    n

    Найдем коэффициенты формулы  f (x)  (ba) yi H i ,

    a

    i0

    где H i

    1 n

    (1)ni t(t 1)...(tn)

    dt

    , i=0,1,…,n при n=2.

    n

    i! (n i)! (t

    i)

    0

    При i = 0

    2

    1

    2 t(t 1)(t 2)

    1

    2

    1

    t 3

    3t 2

    1

    8

    1

    2

    1

    H

    dt

    (t 2

     3t  2)dt

    t

     6

     4

    0

    2

    1

     2  t

    4

    4

    3

    2

    4 3 6

    0

    0

    0

    4  3

    При i = 1

    1

    2 (1)t(t 1)(t  2)

    1

    2

    2

    1

    t 3

    2

    2

    1  8

    1

    4

    2

    H

    dt

     

    (t

     2t)dt  

    t

     

     4

    1

    2

    11 (t 1)

    2

    2

    3

    2 3 3

    0

    0

    0

    2  3

    При i = 2

    2

    1

    2 t(t 1)(t 2)

    1

    2

    1

    t 3

    t 2

    1

    8

    1

    2

    1

    H

    dt

    (t 2

    t)dt

     2

    2

    2

    1 2

     (t  2)

    4

    4

    3 2

    4 3 6

    0

    0

    0

    4  3

    b

    n

    Формула  f (x)  (ba) yi H i на отрезке [x0, x2] примет вид:

    a

    i0

    x2

    n

     1

    2

    1

    f (x)dx (x2 x0 ) H i yi 2h

    y0

    y1

    y2

    3

    6

    x0

    i0

     6

    30

    x2

    2h

    1

    1

    f (x)dx

     2 y1

    y0

    y

    2

    3

    2

    2

    x0

    При n=2m применив формулу к каждой паре частичных отрезков [x2i-2, x2i] (i=1,2,…,m)

    получим формулу Симпсона:

    b

    2hyy

    f (x)dx

    0

    2m

     2 y1y2

     ...  2 y2m1  

    2

    a

    3

    2hy

    0

    y

    2m

     (2 y

    y

    )  (2 y

    y

    )  ...  (2 y

    y

    2m1

    ) 

    3

    2

    1

    2

    3

    4

    2m

    b

    b

    Рассмотрим погрешность:  f (x)dx Ln (x)dxRn (x)

    a

    a

    На отрезке [a, b] R

    h4 (b a)

    f IV ( ), [a, b]

    n

    180

    или

    Rn

    M

    b a

    h4

    , где M  max

    f IV (x)

    180

    x[a,b]

    При

    вычислении

    по

    методу

    повторного

    счета можно использовать формулу:

    R2n

    I n

    I 2n

    . Если при вычислении интеграла требуемая точность не достигнута (т.е.

    15

    I n I 2n 15 ), предусматривается повторный счет с шагом, уменьшенным вдвое.

    Программа вычисления по формуле Симпсона методом повторного счета:

    program lab4_2;

    var n: integer;

    S,a,b,e,h,x,I_n,I_n2,M: real;

    function f(x: real):real;

    begin {записать, функцию в виде f:=[математическое выражение]} f:=sin(x); end; begin

    write('Введите концы отрезка интегрирования: '); readln(a,b);

    write('Введите погрешность e: '); readln(e);

    I_n:=0;

    n:=4;

    Repeat

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

    s:=(f(a)-f(b))/2;

    x:=a+h;

    repeat s:=s+2*f(x)+f(x+h);

    x:=x+2*h;

    until x>=b;

    I_n2:=2*h*s/3;

    n:=n*2;

    M:=abs(I_n - I_n2);

    I_n:=I_n2;

    Until M<=15*e;

    writeln('Интеграл I=',I_n2:12:7);

    readln;

    end.

    31

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

    Дифференциальное уравнение 1-го порядка, разрешенное относительно производной, имеет вид:

    y  f (x, y)

    Решением

    Дифференциального уравнения

    (1)

    (1) называется функция

    y(x),

    подстановка которой в уравнение обращает его в тождество: y(x)  f (x, y(x)) .

    График решения y=y(x) называется интегральной кривой.

    Задача Коши для дифференциального уравнения (1) состоит в том, чтобы найти решение дифференциального уравнения (1), удовлетворяющее начальному условию y(x0)=y0 (2). Пару чисел (x0,y0) называют начальными данными.

    Решение задачи Коши называется частным решением дифференциального уравнения (1) при условии (2).

    Геометрически задача Коши означает, что требуется найти интегральную кривую y=y(x), проходящую через заданную точку (x0,y0).

    Теорема о существовании и единственности решения задачи Коши.

    Пусть функция f(x,y) – правая часть уравнения y  f (x, y) - непрерывна вместе со

    своей частной производной по переменной y

    f (x, y)

    в некоторой области D на

    dy

    плоскости. Тогда при любых начальных данных (x0,y0)D задача Коши имеет единственное решение y=y(x).

    При выполнении условий теоремы через точку (x0,y0) на плоскости проходит единственная интегральная кривая.

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

    • аналитические методы (решение в виде аналитического выражения);

    • графические методы (решение в виде графика);

    • численные методы (решение в виде таблицы).

    Численное решение задачи Коши состоит в том, чтобы получить искомое решение y(x) в виде таблицы его приближенных значений аргумента x на некотором отрезке [a, b]:

    x0=a, x1, x2, …, xm=b

    (3)

    Точки (3) называют узловыми, множество этих точек называют сеткой на отрезке [a, b].

    Как правило, используют равномерную сетку с шагом h: hb ma xi=x0+ih (i=0, 1, …, m)

    Приближенные значения численного решения задачи Коши в узловых точках обозначим yi.

    yi y(xi), где (i=0, 1, …, m)

    Начальное условие выполняется точно: y0 = y(x0).

    32

    Величина погрешности численного решения задачи Коши на сетке отрезка [a, b] оценивается величиной d  max{ yiy(xi )},

    1im

    т.е. расстоянием между векторами приближенного решения (y0, y1, …,ym) и точного решения (y(x0), y(x1), …,y(xm)) на сетке по m-норме.

    { y’=f(x, y); (1)

    y(x0)=y0;

    Решить обыкновенное диф. ур. – найти функ y=y(x), которая при подстановке даёт тождество.

    Существование и единственность решения ур. (1) обеспечиваются теоремой. Теорема Пикара: если функ. f определена и непрерывна в некоторой области G,

    определяемой неравенствами:

    |x–x0|≤a, |y–y0|≤b,

    и удовлетворяет в этой области условию Липшица по y:

    |f(x, y1)–f(x, y2)|≤M|y1–y2|,

    то на некотором отрезке |x–x0|≤h, где h – положительное число, существует, и при том только одно, решение y=y(x) уравнения (1), удовлетворяющее начальному условию

    y0=y(x0).

    M=max|f’y(x, y)| – константа Липшица.

    Для нормальных систем ОДУ используются те же методы, только в векторной форме:

    y’=f(x, y), где y=(y1(x),...,yn(x)); f(x, y)=(f1,...,fn);

    Уравнения более высокого порядка принято сводить к системе:

    Пусть:

    y(n)=F(x, y(n-1),..., y);

    Обозначим:

    z1=y;

    z2=y’;

    ………

    zn=y(n-1);

    Вместо ур. запишем систему с переменной z:

    |z’1=z2;

    |z’2=z3;

    {………

    |z’n-1=zn;

    |z’n=F(x, zn,…, z1);

    нормальная сист. диф. ур.

    }

    M1(x1,y1) равен x2=x1+h

    33

    1. Метод Эйлера численного интегрирования дифференциального уравнения. Алгоритм, блок-схема. Недостатки метода.

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

    Угловой коэффициент касательной к интегральной кривой в точке M0(x0,y0) равен

    y0  f (x0 , y0 ) .

    Найдем ординату y1 касательной, соответствующей абсциссе x1=x0+h.

    Уравнение касательной к кривой в точке M

    0

    имеет вид

    y y

    0

    y

    (xx

    ) или

    0

    0

    y y

    0

    y

    (xx

    ) , откуда y =y +hf(x ,y

    ).

    0

    0

    1

    0

    0

    0

    Аналогично, угловой коэффициент касательной к интегральной кривой в точке

    y1  f (x1 , y1 ) . Точку M2(x2,y2) получим соответственно

    y2=y1+hf(x1,y1).

    Продолжая вычисления по данной схеме, получим формулы Эйлера для приближенного решения задачи Коши с начальными данными (x0,y0) на сетке отрезка [a, b] с шагом h:

    xi=xi-1+h

    yi=yi-1+hf(xi-1,yi-1).

    (4)

    Графической

    иллюстрацией приближенного решения

    является ломаная,

    соединяющая последовательно точки M0, M1, …,Mm, которую называют ломаной Эйлера.

    y

    M4

    M2

    M3

    M1

    M0

    O

    x0

    x1

    x2

    x3

    x4

    x

    Погрешность метода Эйлера можно оценить неравенством

    d

    1

    max

    

    h

    2

    b a

    ,

    (5)

    y (x)

    2 axb

    h

    0,

    1

     (ba)

    которое можно представить в виде d=Ch, где С

    max

    y(x)

    . Таким

    2 axb

    образом, метод Эйлера имеет первый порядок точности.

    Практическую оценку погрешности решения, найденного на сетке с шагом h/2, в

    точке xi[a, b] производят с помощью приближенного равенства – правила Рунге:

    yxi

    h

    yi

    h yi h / 2

    (6)

    yi

    2P 1

     2

    где P – порядок точности численного метода.

    Таким образом, оценка полученного результата по правилу Рунге вынуждает проводить вычисления дважды: с шагом h и h/2, причем совпадение десятичных знаков

    • полученных двумя способами результатах дает основание считать их верными. program Eiler;

    34

    var x,a,b,h,y:real;

    m,i:integer;

    function f(x,y: real): real;

    begin f:=cos(x);

    end;

    begin writeln('Введите значения концов отрезка [a,b]'); readln(a,b);

    writeln('Введите начальное значение y0=y(x0)');readln(y);

    writeln('Введите число значений функции на промежутке [a,b]'); read(m);

    x:=a; h:=(b-a)/m;

    for i:=0 to m do

    begin writeln (x:10:3, y:15:4);

    y:=y+h*f(x,y); x:=x+h

    end; readln;

    end.

    35

    1. Методы Рунге-Кутта. Расчетные формулы, алгоритм, блок-схема, погрешность метода.

    Численные методы решения задачи Коши y  f (x, y) , y(x0)=y0 на равномерной

    сетке {x0=a, x1, x2, …,

    xm=b} отрезка [a, b] с шагом h

    b a

    являются методами Рунге-

    m

    Кутта, если, начиная с данных y(x0)=y0

    решение ведется по следующим рекуррентным

    формулам:

    xi xi1 h ;

    yi yi1  yi1

    (i=1, 2, …, m)

    (7)

    P

    k [ji1] hf xi1 c j h, yi1 c j k [ji11]

    yi1 d j k [ji

    1] ,

    j 1

    Метод называют методом Рунге-Кутта порядка P, если он имеет P-й порядок точности по шагу h на сетке.

    Метод Эйлера можно назвать методом Рунге-Кутта первого порядка.

    Метод Рунге-Кутта второго порядка называют методом Эйлера-Коши, если P=2,

    c1=0,

    c2=1,

    d1=d2=1/2

    xi xi1 h ;

    yi yi1  yi1

    (i=1, 2, …, m)

    (8)

    yi1

    1

    k1[i1]

    k

    2[i1] 

    k1[i1] hf xi1 , yi1 k2[i1] hf xi1 h, yi1 hf xi1 , yi1 

    2

    Для практической реализации погрешности решения можно применять правило

    h

    yi h yi h / 2

    Рунге, полагая P=2:

    yxi  yi

    2 

    3

    Программа решения дифференциального уравнения методом Эйлера-Коши:

    program Eiler_Koshi;

    var x,a,b,h,y,z:real;

    m,i:integer;

    function f(x,y: real): real;

    begin f:=cos(x); end;

    begin writeln('Введите значения концов отрезка [a,b]'); readln(a,b); writeln('Введите начальное значение y0=y(x0)');readln(y);

    writeln('Введите число значений функции на промежутке [a,b]'); read(m);

    x:=a; h:=(b-a)/m;

    for i:=0 to m do

    begin writeln (x:10:3, y:15:4);

    z:=y+h*f(x,y);

    y:=y+h*(f(x,y)+f(x+h,z))/2;

    x:=x+h

    end; readln; end.

    36

    1. Методы обработки данных. Метод наименьших квадратов. Общий случай. Постановка задачи

    Пусть данные некоторого эксперимента представлены в виде таблицы:

    xi x1 x2 … xn

    yi y1 y2 … yn (1)

    Поставим задачу об отыскании аналитической зависимости между x и y, т.е. некоторой формулы y=f(x). При этом потребуем, чтобы график искомой функции изменялся плавно и не слишком уклонялся от экспериментальных данных. Поиск такой зависимости называют «сглаживанием» экспериментальных данных. Формулу y=F(x)

    – эмпирической формулой или уравнением регрессии y на x.

    y

    y6

    y5

    y4

    y2

    y3

    y1

    O

    x1

    x2

    x3

    x4

    x5 x6

    x

    Предположим, что приближающая функция y=F(x) имеет значения.

    xi x1 x2 … xn

    …

    (2)

    yi

    y1

    y

    2

    yn

    Рассматривая совокупности (1) и (2) как координаты двух точек n-мерного пространства, найдем расстояние между ними по евклидовой метрике

    y1y12  y2y 22  ...  yny n2

    Потребуем, чтобы эта величина была наименьшей. Это равносильно тому, что сумма квадратов должна быть наименьшей:

    S y1 y1 2 y2 y 2 2 ... yn y n 2 или S n yi y i 2

    i1

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

    {

    1. x0 … xn

    2. y0 … yn

    (xi, yi) задаёт неизвестную функ. f(x).

    Подбор эмпирической функции т.е. функ. не явл. решением ур. модели, и основана только на данных.

    Идея: y=φ(x) – подбираем так, чтобы минимизировать «невязки».

    Пусть φ(x) – эмпирическая функ. – функ. так или иначе «близкая» к данным.

    Составим разности след. вида:

    37

    φ(xi)–yi – назовём это невязка в точке xi;

    Составим функционал невязки вида:

    F=∑i=1n(φ(xi)–yi)2;

    Задача: найти функ. φ(x) так, чтобы F достигало минимума. Как правило функ. φ(x) выбирают из определённого класса. Любая функ. как правило содержит коэффициенты-параметры.

    Покажем как найти min F на примере простейшей зависимости: φ(x)=ax+b – лин.

    функ.

    Задача, найти a и b так, чтобы F(a, b) достигала min.

    F(a, b) – функ. двух переменных, необходимое условие экстремума (в данном случае min) – равенство 0 частных производных.

    Составим: F(a, b)=∑i=1n(yi–(axi+b))2;

    Условие минимума: ∂F/∂a=0 и ∂F/∂b=0;

    Сист. двух ур. с двумя неизвестными a и b (такая система наз. нормальной) (метод наименьших квадратов МНК).

    ∂F/∂a=–2∑i=1n(yi–(axi+b))xi;

    ∂F/∂b=–2∑i=1n(yi–(axi+b));

    таким образом сист. норм. ур. запишется в виде:

    {∑i=1n(yi–axi–b)xi=0;

    |∑i=1n(yi–axi–b)=0;

    {∑i=1nyixi–a∑i=1nxi2–b∑i=1nxi=0;

    |∑i=1nyi–a∑i=1nxi–nb=0;

    Введём обозначение:

    Mx=(1/n)∑i=1nxi;

    My=(1/n)∑i=1nyi;

    Mxy=(1/n)∑i=1nyixi;

    Mx2=(1/n)∑i=1nxi2;

    Система запишется:

    {aMx2+bMx=Mxy;

    |aMx+b=My;

    a=(Mxy–MxMy)/(Mx2–(Mx)2);

    b=(Mx2My–MxMxy)/(Mx2–(Mx)2);}

    38

    23.Линейная и квадратичная регрессия.

    Линейная регрессия.

    Покажем как найти min F=∑i=1n(φ(xi)–yi)2; для лин. функ.: φ(x)=ax+b – лин. функ.

    Задача, найти a и b так, чтобы F(a, b) достигала min.

    F(a, b) – функ. двух переменных, необходимое условие экстремума (в данном случае min) – равенство 0 частных производных.

    Составим: F(a, b)=∑i=1n(yi–(axi+b))2;

    Условие минимума: ∂F/∂a=0 и ∂F/∂b=0;

    Сист. двух ур. с двумя неизвестными a и b (такая система наз. нормальной) (метод наименьших квадратов МНК).

    ∂F/∂a=–2∑i=1n(yi–(axi+b))xi;

    ∂F/∂b=–2∑i=1n(yi–(axi+b));

    таким образом сист. норм. ур. запишется в виде:

    {∑i=1n(yi–axi–b)xi=0;

    |∑i=1n(yi–axi–b)=0;

    {∑i=1nyixi–a∑i=1nxi2–b∑i=1nxi=0;

    |∑i=1nyi–a∑i=1nxi–nb=0;

    Введём обозначение:

    Mx=(1/n)∑i=1nxi;

    My=(1/n)∑i=1nyi;

    Mxy=(1/n)∑i=1nyixi;

    Mx2=(1/n)∑i=1nxi2;

    Система запишется:

    {aMx2+bMx=Mxy;

    |aMx+b=My;

    a=(Mxy–MxMy)/(Mx2–(Mx)2);

    b=(Mx2My–MxMxy)/(Mx2–(Mx)2);

    Квадратичная регрессия.

    Покажем как найти min F=∑i=1n(φ(xi)–yi)2; для лин. функ.: φ(x)=ax2+bx+c.

    Задача, найти a и b так, чтобы F(a, b) достигала min.

    Функция F(a, b, c)=∑i=1n(yi–(axi2+bxi+c))2; – функция трёх переменных.

    Для квадратичной зависимости получаем сист. норм. ур. вида:

    ∂F/∂a=

    –2∑i=1n(yi–axi2–bxi–c)xi2=0;

    ∂F/∂b=

    –2∑i=1n(yi–axi2–bxi–c)xi=0;

    ∂F/∂c=

    –2∑i=1n(yi–axi2–bxi–c)=0;

    Получили сист. трёх ур. с тремя неизвестными.

    Преимущество двух рассмотренных моделей состоит в том, что они линейны по параметрам и как следствие сист. норм. лин. ур. линейна по a, b, (c).

    39

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

    Нахождение приближающей функции в виде линейной функции Рассмотрим приближающую функцию в виде F(x,a,b) = ax+b.

    Наша задача – отыскать значения параметров a и b.

    n

    n

    b2

    Рассмотрим функцию (a, b)  yi

    F (xi , a, b)2 или (a, b) yi axi

    i1

    i1

    Задача сводится к отысканию

    минимума функции Ф(a,b).

    Используем

    необходимое условие экстремума: a  0 ; b  0 .

      2yiF (xi , a, b) F

    n

    a

    i1

    a

      2yiF (xi , a, b) F

    n

    b

    i1

    b

    Учитывая, что

    F

    x ,

    F

     1, получим систему вида:

    b

    a

    n

    yi axi bxi 0

    i1

    n

    yi axi b

     0

    i1

    n

    n

    n

    n

    n

    n

    xi yi axi 2 bxi 0

    axi 2 bxi xi yi

    Далее,  i1

    i1

    i1

    или  i1

    i1

    i1

    n

    n

    n

    n

    yi axi b n 0

    axi b n

    yi

    i1

    i1

    i1

    i1

    Выразим значения a и b из системы уравнений:

    n

    n

    n

    a

    nxi yi xi yi

    i1

    i1

    i1

    n

    2

    n

    2

    nxi

     

    xi

    i1

    i1

    n

    n

    n

    n

    b

    nxi 2

    yi xi yi xi

    i1

    i1

    i1

    i1

    n

    2

    n

    2

    nxi

     xi

    i1

    i1

    Существует показатель, характеризующий тесноту линейной связи между X и Y.

    Это (выборочный) коэффициент корреляции. Он вычисляется по формуле:

    n

    n

    n

    r

    nxi yi

    xi yi

    i1

    i1

    i1

    n

    2

    n

    2 

    n

    2

    n

    2 

     xi

      yi

    nxi

    n yi

    i 1

    i1

    i1

    i1

    Значение коэффициента корреляции всегда удовлетворяет соотношению: -1r1. Чем меньше отличается абсолютная величина r от единицы, тем ближе к линии регрессии располагаются экспериментальные точки.

    Если коэффициент корреляции равен нулю, то говорят, что переменные X и Y некоррелированы.

    40

    Нахождение приближающей функции

    • виде других элементарных функций