Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика ответы.doc
Скачиваний:
44
Добавлен:
18.09.2019
Размер:
630.27 Кб
Скачать
  1. Обработка массивов в я/п тр. Двумерные массивы.

Двумерный массив в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов). Положение элементов в двумерных массивах Паскаля описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы.

Рассмотрим двумерный массив Паскаля размерностью 3*3, то есть в ней будет три строки, а в каждой строке по три элемента:

Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел – номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элемента определяется пересечением строки и столбца. Например, a 21 – это элемент, стоящий во второй строке и в первом столбце.

Описание двумерного массива Паскаля.

Мы уже умеем описывать одномерные массивы, элементы которых могут иметь любой тип, а, следовательно, и сами элементы могут быть массивами. Рассмотрим следующее описание типов и переменных:

Пример описания двумерного массива Паскаля

Type

Vector = array [1..5] of <тип_элементов>;

Matrix= array [1..10] of vector;

Var m: matrix;

Мы объявили двумерный массив Паскаля m, состоящий из 10 строк, в каждой из которых 5 столбцов. При этом к каждой i -й строке можно обращаться m [ i ], а каждому j -му элементу внутри i -й строки – m [ i , j ].

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

Type

Matrix= array [1..5] of array [1..10] of < тип элементов >;

или еще проще:

type

matrix = array [1..5, 1..10] of <тип элементов>;

Обращение к элементам двумерного массива имеет вид: M [ i , j ]. Это означает, что мы хотим получить элемент, расположенный в i -й строке и j -м столбце. Тут главное не перепутать строки со столбцами, а то мы можем снова получить обращение к несуществующему элементу. Например, обращение к элементу M [10, 5] имеет правильную форму записи, но может вызвать ошибку в работе программы.

  1. 28. 29. Нелинейные уравнения. Способы решения. Этапы решения уравнений итерационным методом. Метод половинного деления. Метод хорд. Метод Ньютона.

Уравнение типа F(x)=0 или x=f(x) называется нелинейным. Решить уравнение это значит найти такое x, при котором уравнение превращается в тождество. В общем случае уравнение может иметь 0; 1; 2;...∞ корней. Рассмотренные ниже численные методы решения нелинейных уравнений позволяют находить один корень на заданном интервале [a,b]. При этом на интервале должен существовать только один корень. Рассмотрим несколько методов решения нелинейных уравнений.

Метод перебора. Метод половинного деления. Метод хорд. Метод касательных. Метод хорд-касательных. Метод итераций.

Метод итераций (последовательных приближений) для уточнения корней нелинейных уравнений

Одним из наиболее распространенных методов решения нелинейных уравнений является метод итераций.

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

Пусть дано f(x)=0 (уравнение 1), где f(x) - непрерывная на отрезке [a,b] функция, которая обращается в ноль хотя бы в одной точке.Требуется найти вещественный корень уравнения 1.

Заменим уравнение (1) эквивалентным уравнением (2).x=u(x) В этом уравнении искуственно любым способом оставляют слева x, перенося все остальное вправо

Уравнение (2) называют уравнением приведенным к виду, удобному для итерации. Уравнение (2) имеет те же корни, что и уравнение (1).

Представление функции в виде u(x) может быть установленно бесчисленным множеством способов. Кроме того вид u(x) оказывает существенное влияние как на сам факт сходимости, так и на ее скорость. Выберем каким либо образом грубо начальное приближение x0 (можно графически или используя формулу x0=(a+b)/2) и подставим его в правую часть уравнения (2). Тогда получим некоторое число x1, которое равно u(x0). Далее полученное значение x1 вновь подставляем в правую часть уравнения (2) и получим некоторое значение x2 и т.д. Каждое новое приближение корня уравнения вычисляется по формуле xn+1=u(xn), n>0. Получим последовательность приближений x0, x1, ... ,xn

Возможны два случая:

1.       последовательность сходится, т.е. имеет предел и тогда этот предел является корнем уравнения (2), а следовательно и уравнения (1);

2.       последовательности расходится, т.е. не имеет предела.

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

Пока |b-a|>ε

c=(a+b)/2

F(a)∙F(c)<0

да

нет

b=c

a=c

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

Пока |F(c)|>ε

F(a)∙F(c)<0

да

нет

b=c

a=c

Геометрический смысл метода Ньютона состоит в том, что дуга кривой y=f(x) заменяется касательной к этой прямой, откуда следует второе название этого метода - метод касательных

Пусть корень уравнения f(x)=0 отделен на отрезке [a,b], причем первая и вторая производные непрерывны и сохраняют постоянные знаки на отрезке [a,b]. Как и при уточнении корней методом хорд, в методе Ньютона возможны два случая, которые зависят от формы графика исходной функции на отрезке [a,b].

1I. f'(x)f"(x)>0

Для этого случая характерны графики, представленные не рис.1 и рис.2

Если провести касательную к кривой y=f(x) в точке А, то она пересечет координатную ось ОХ в точке не принадлежащей интервалу [a,b]. Это означает, что точка А будет неподвижной, а начальное приближение корня будет определяться точкой пересечения касательной, проведенной из точки B с координатной осью OY.

Рис.1

Рис.2

Проведем касательную к кривой y=f(x) в точке B0(b;f(b)) и найдем абсциссу точки пересечения касательной с координатной осью ОХ (точка x1). Это значение можно вычислить использую формулу (1), которая вытекает из уравнения касательной к графику функции y=f(x) в точке B0. Найденное значение будет первым приближением корня . В общем случае формулу (1) можно записать в виде формулы (2), которая подходит для вычисления всех последующих приближений корня .

(1)

x0=b (2)

Таким образом получаем последовательность приближенных значений, каждый член которой ближе к корню чем предыдущий, однако все xn>, следовательно xn+1 приближенное значение корня с избытком.

2II. f'(x)f"(x)<0

Для этого случая характерны графики функций, представленные на рис.3 и рис.4

Если провести касательную к кривой f(x)=0 в точке B, то она пересекет координатную ось ОХ в точке не принадлежащей отрезку [a,b]

Рис.3

Рис.4

Проведем касательную к кривой y=f(x) в точке А0(a;f(a)) и найдем абсциссу точки пересечения касательной с координатной осью OX. Это значаение вычисляется по формуле (3), которая следует из уравнения касательной к графику функции y=f(x) в точке A0 и является первым приближением корня . В общем случае для вычисления остальных приближений можно воспользоваться формулой (4), которая является общей формулой для нахождения n+1 приближения корня .

(3)

x0=a (4)

При выборе начального приближения корня можно руководствоваться правилом

За исходную точку x0 следует выбирать тот конец отрезка [a,b] на котором знак функции совпадает со знаком второй производной от этой функции.

Процесс вычисления продолжается до тех пор, пока модуль разности между двумя соседними приближениями не станет меньше заданной погрешности вычисления , т.е. |xn+1-xn|<. За приближенное значение корня при этом следует взять xn+1 приближение.