Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Описание операций, их классификация и приоритет



Решение задачи Коши. Метод Эйлера.

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

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

 

Численное решение задачи Коши y' = f(x, y), y(a) = y0 на отрезке [a, b] состоит в построении таблицы приближённых значений y0, y1, ..., yi, ...,yN решения y = y(x), y(xi) ≈ yi ,

в узлах сетки a = x0< x1< ...< xi< ...< xN = b. Если xi = a + ih, h = (b-a)/N, то сетка называется равномерной.

 

Численный метод решения задачи Коши называется одношаговым, если для вычисления решения в точке x0 + h используется информация о решении только в точке x0.

Простейший одношаговый метод численного решения задачи Коши — метод Эйлера. В методе Эйлера величины yi вычисляются по формуле :

yi+1 = yi + h·f(xi, yi):

y' = f(x, y), y(a) = y0 , x ∈ [a, b],

xi = a + ih, h = (b-a)/N, i = 0,1 , 2, ..., N,

y(xi)≈ yi ,

yi+1 = yi + h·f(xi, yi).

 

Для погрешности метода Эйлера на одном шаге справедлива оценка

а для оценки погрешности решения на всём отрезке [a, b] справедливо

Для практической оценки погрешности можно рекомендовать правило Рунге:производятся вычисления с шагом h — вычисляютcя значения y(h)i, затем производятся вычисления с половинным шагом h/2 — вычисляютcя значения y(h/2)i .

За оценку погрешности вычислений с шагом h/2 принимают величину

Если соединить точки (xi, yi) прямолинейными отрезками, получим ломаную Эйлера — ломаную линию, каждое звено которой с началом в точке (xi, yi) имеет угловой коэффициент, равный f(xi, yi).

 

Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно.

 


const

nmax = 20;

 

var

a: array[1..nmax, 1..nmax] of integer;

n, m, i, j, jmin, jmax, t: integer;

 

begin

repeat

write('Enter n, m(n<=', nmax, '; m<=', nmax,'): ');

readln(n, m);

until (n in [1..nmax]) and (m in [1..nmax]);

writeln('Source matrix');

for i := 1 to n do

begin

for j := 1 to m do

begin

a[i, j] := random(99);

write(a[i, j]:4);

end;

writeln;

end;

 

// дабы не было путаницы при перестановке, разделяем цикл:

// сначала ищем и меняем минимум, потом максимум

jmin := 1; jmax := 1;

for i := 1 to n do

begin

for j := 2 to m do

if a[i, j] < a[i, jmin] then jmin := j;

t := a[i, 1];

a[i, 1] := a[i, jmin];

a[i, jmin] := t;

 

for j := 2 to m do

if a[i, j] > a[i, jmax] then jmax := j;

t := a[i, m];

a[i, m] := a[i, jmax];

a[i, jmax] := t;

end;

 

writeln('New matrix');

for i := 1 to n do

begin

for j := 1 to m do

write(a[i, j]:4);

writeln;

end;

readln;

end.


Билет № 7

1)Операторы языка описывают некоторые алгоритмические действия, которые необходимо

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

таких операторов.

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

Begin
...
Begin
...
Begin
...
End;
End;
End;

Условный оператор

IF<условие>THEN<оператор1>0[ELSE<оператор2>]

Условие – значение типа BOOLEAN или логическая операция. Если условие верно, выполняется оператор, или блок операторов, следующий за THEN, в противном случае выполняется блок операторов после ELSE, если он есть.

 

3)Операторы повторений

А)Цикл с предопределенным числом повторений.

For <переменная цикла>:=<начальное значение> To(DownTo) <конечное значение> Do <блок операторов>

Переменная должна быть целого или перечислимого типа. При исполнении цикла переменная цикла изменяется от начального до конечного значения с шагом 1. Если стоит to, то переменная увеличивается, если downto – уменьшается.

Б)Условный цикл с проверкой условия перед исполнением блока операторов.

While <условие> Do <блок операторов>

Блок операторов будет исполняться, пока условие имеет значение true. Необходимо, чтобы значение условия имело возможность изменения при исполнении блока операторов, иначе исполнение цикла не закончится никогда.

В)Условный цикл с проверкой после выполнения блока операторов.

Repeat <тело цикла> Until <условие>

Блок операторов независимо от значения условия будет выполнен хотябы один раз. Цикл заканчивается, если после очередного исполнения блока операторов условие имеет значение true.

Г)Оператор выбора одного из вариантов.

Case <ключ выбора> Of <список выбора> Else <оператор> End;

<ключ выбора> - выражение любого перечислимого типа,
<список выбора> - одна или более конструкций вида <значение ключа>:<блок операторов>.

Билет 8
1)сортировкой или упорядочением массива называется расположение его элементов по возрастанию (или убыванию). Если не все элементы различны, то надо говорить о неубывающем (илиневозрастающем) порядке.
Метод "пузырька"
что массив (таблица) расположен вертикально. Элементы с большим значением всплывают вверх наподобие больших пузырьков. При первом проходе вдоль массива, начиная проход "снизу", берется первый элемент и поочередносравнивается с последующими. При этом:

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

begin for j:=1 to N-1 do for i:=1 to N-j do if M[i] > M[i+1] then swap(M[i],M[i+1]) end;

Стандартная процедураswapбудет использоваться и в остальных алгоритмах сортировки для перестановки элементов (их тип мы уточнять не будем) местами:

procedure swap(var x,y: ...); var t: ...; begin t := x; x := y; y := t end;

Сортировка вставками

begin M[0] := -oo; for j:=2 to N do begin i := j; while M[i] < M[i-1] do begin swap(M[i],M[i1]); i := i-1 end end end;
begin for j:=1 to N-1 do begin FindMin(j, i); swap(M[j],M[i]) end end;

Второй метод называется метод вставок., т.к. на j-ом этапе мы "вставляем" j-ый элемент M[j]в нужную позицию среди элементов M[1], M[2],. . ., M[j-1], которые уже упорядочены. После этой вставки первые j элементов массива M будут упорядочены. нц для j от 2 до Nпереместить M[j] на позицию i <= j такую, что M[j] < M[k] для i<= k < j и либо M[j] >= M[i-1], либо i=1
Чтобы сделать процесс перемещения элемента M[j], более простым, полезно воспользоваться барьером: ввести "фиктивный" элемент M[0], чье значение будет заведомо меньше значения любого из "реальных"элементов массива (как это можно сделать?). Мы обозначим это значение через —оо.
Если барьер не использовать, то перед вставкой M[j], в позицию i-1 надо проверить, не будет ли i=1. Если нет, тогда сравнить M[j]( который в этот момент будет находиться в позиции i) с элементом M[i-1].
Сортировка посредством выбора
Идея сортировки с помощью выбора не сложнее двух предыдущих. На j-ом этапе выбирается элемент наименьший среди M[j], M[j+1],. . ., M[N](см. процедуру FindMin) и меняется местами с элементом M[j]. В результате после j-го этапа все элементы M[j], M[j+1],. . ., M[N]будут упорядочены.
для j от 1 до N-1
выбрать среди M[j],. . ., M[N] наименьший элемент и поменять его местами с M[j]

2.Метод Гаусса является наиболее оптимальным и быстрым решением систем линейный уравнений.



Просмотров 428

Эта страница нарушает авторские права




allrefrs.ru - 2023 год. Все права принадлежат их авторам!