Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Решение уравнений методами последовательных приближений

РефератПомощь в написанииУзнать стоимостьмоей работы

Как это видно из предложенного решения, две подпрограммы после оператора End обрабатывают оба возможных случая: 1) когда решение получается посередине нового (decision) и 2) когда в середине текущего интервала решения нет (decision2). Вы уже должны были догадаться по всему вышеизложенному, каким именно способом будет действовать нужный алгоритм. Фактически, именно его мы и прописали… Читать ещё >

Решение уравнений методами последовательных приближений (реферат, курсовая, диплом, контрольная)

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

Решение уравнений методами последовательных приближений.

Если уравнение можно преобразовать к виду, то, взяв в качестве начального значения какое-нибудь число, можно получить, а затем перейти к любому новому шагу по правилу. Такие соотношения называют рекурсивными (или рекурсией, от recourse — возвращение), а входящие в него аргументы — приближенными решениями. Очевидно, что нам наиболее интересен процесс:, при котором ясно, что может существовать некоторое число, превращающее соотношение в тождество, т. е. являющееся точным решением нашего уравнения.

Решение уравнений методами последовательных приближений.
Решение уравнений методами последовательных приближений.

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

Задача. Напишем программу для нахождения методом итераций решения уравнения, преобразованный вид которого таков.

Решение уравнений методами последовательных приближений.

Решение.

cls.

'metod posled. priblizh.

print «Reshaem uravneniye, presobrazovannyi vid kotorogo» .

print «x = tg (0.2x) — 0.9sqr (x)» .

input «vvedi kolichestvo iteratsii»; n%.

dim x (n% + 1) as double, r (n%) as double.

INPUT «vvedi nachalnoye znachenie»; x (0).

FOR i% = 1 TO n% STEP 1.

x (i%) = 3 + TAN (.2 * x (i% - 1)) — .9 * SQR (ABS (x (i% - 1))).

print «reshenie na»; i%; «iteratsii = «; x (i%);

print «shag =»; x (i%) — x (i% - 1).

print.

next i%.

print.

print n%; «-oe pribizh.= «; x (n%);

print «s poslednim shagom=»; x (n%) — x (n% - 1).

end.

Решение уравнений методами последовательных приближений.

Рассмотрим еще один простой, но мощный метод решения уравнений, основанный на том, что при необходимости решить уравнение для функции можно сначала поискать такой сегмент, что (т.е. сегмент, на котором функция меняет знак). Дополнительным предположением для того, чтобы метод наверняка давал хотя бы одно решение, служит требование непрерывности функции на сегменте. Надеюсь, что вы сразу же узнали условия теоремы о нуле непрерывной функции? Помните, как она доказывалась? Пусть. Тогда, очевидно,. Сегмент делится пополам и вычисляется значение функции в его средней точке. Если то результат уже получен. Если то и, а если то и. В новом сегменте процедура повторяется и получается или готовое решение (посередине), или новый сегмент. Последний также может быть снова подвержен той же самой процедуре, и т. д. На каждом шаге с номером получается сегмент длины. С ростом он весьма быстро стремится к нулю. Поэтому (точнее, по лемме о стягивающихся отрезках), существует единственная точка И в этой точке, по нашему построению, мы имеем.

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

Решение уравнений методами последовательных приближений.

Задача. Написать программу для решения уравнения методом «вилки» (деления отрезка пополам) Решение.

CLS.

?"Ishchem resheniye uravneniya x3−2x2+5x-4.1 234 567=0″.

DIM x AS DOUBLE, y AS DOUBLE, z AS DOUBLE.

'opredeleniye funktsii, izmenit' dlya drogoi zadachi!!!

DEF FNUser (x) = x * x * x — 2 * x * x + 5 * x — 4.1 234 567#.

DEF FNNew (y, z) = y * z.

INPUT «predely simmetrichnogo intervala [-A;A], A=?»; Dia.

m% = INT (ABS (Dia)).

DIM x (m%) AS DOUBLE, y (m%) AS DOUBLE.

FOR i% = -m% TO m%.

PRINT i%, FNUser (i%).

NEXT i%.

20 INPUT «dlya [a;b] vvedi a=»; Left: INPUT «i b=»; Right.

INPUT «opredeli kolichestvo iterastii N»; n%.

REDIM a (n% + 1) AS DOUBLE, b (n% + 1) AS DOUBLE, c (n% + 1) AS DOUBLE.

a (0) = Left: b (0) = Right.

CLS.

PRINT «proverka godnosti intervala…» .

IF FNNew (Left, Right) < 0 THEN CLS: PRINT «OK»: GOTO 40.

PRINT «Interval ne goditsya!!!» .

GOTO 20.

40 PRINT «interval goditsya!» .

PRINT «Nazhmi <> dlya prodolzheniya…» .

DO.

LOOP UNTIL INKEY$ = CHR$(32) '032 is the ASCII code for «Space» .

GOTO 60.

50 INPUT «opredeli NOVOYE kolichestvo iterastii N»; n%.

REDIM a (n% + 1) AS DOUBLE, b (n% + 1) AS DOUBLE, c (n% + 1) AS DOUBLE.

a (0) = Left: b (0) = Right.

60 FOR i% = 1 TO n%.

c (i%) = (a (i% - 1) + b (i% - 1)) * .5.

PRINT i%, c (i%), FNUser (c (i%)).

GOSUB decision.

GOSUB decision2.

NEXT i%.

PRINT «poluchili interval [an;bn]=»; «[»; a (n%); «;»; b (n%); «]» .

PRINT «Znachenie funktsii v an =»; FNUser (a (n%)).

PRINT «Znachenie funktsii v bn =»; FNUser (b (n%)).

PRINT «Znachenie funktsii v seredine =»; FNUser ((a (n%) + b (n%)) * .5).

PRINT «Resheniye c=»; (a (n%) + b (n%)) * .5.

INPUT «Uvelichit' kol-vo iteratsii? Da=1/Net-drugoe chislo», ask.

IF ask = 1 THEN GOTO 50.

PRINT «Zadacha zavershena!» .

END.

decision:

k = i%.

IF FNUser (c (k)) = 0 THEN.

PRINT «Resheniye polycheno! c=»; c (k).

ELSE PRINT «Srazu ne popali!» .

END IF.

RETURN.

decision2:

k = i%.

IF (FNUser (c (k)) * FNUser (b (k — 1))) < 0 THEN.

b (i%) = b (i% - 1): a (i%) = c (i%).

ELSEIF (FNUser (c (k)) * FNUser (a (k — 1))) < 0 THEN.

a (i%) = a (i% - 1): b (i%) = c (i%).

END IF.

RETURN.

Как это видно из предложенного решения, две подпрограммы после оператора End обрабатывают оба возможных случая: 1) когда решение получается посередине нового (decision) и 2) когда в середине текущего интервала решения нет (decision2).

Показать весь текст
Заполнить форму текущей работой