ZX-Ревю 1993 №5-6 1992 г.

Спектрум в школе - Вам никогда в детстве не приходилось играть в игру "Холодно-Горячо"? Это когда один играющий прячет в комнате какой-то предмет, а другой пытается его отыскать по сообщениям типа "Холодно!" - "Холодно" - "Теплее" - "Горячо" -"АФРИКА!!!".


Темы статьи: Программирование  

СПЕКТРУМ В ШКОЛЕ

Дорогие друзья! Вам никогда в детстве не приходилось играть в игру "Холодно-Горячо"? Это когда один играющий прячет в комнате какой-то предмет, а другой пытается его отыскать по сообщениям типа "Холодно!" - "Холодно" - "Теплее" - "Горячо" -"АФРИКА!!!".

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

Давайте вдумаемся, ведь в любом алгебраическом уравнении "спрятан" его корень (если он есть). Если вместо неизвестного X в уравнение подставить этот корень, то уравнение обратится в ноль. А если, подставить не корень, а другое число? Тогда оно в ноль не обратится, а будет равно какому-то числу "d" и чем больше эта "невязка" d, тем "холоднее" Ваш ответ. Вот так играя мы можем решать достаточно сложные уравнения. Возьмем простенькое уравнение: 5 хл3 - 3x - 70.625 = 0

И попробуем "угадать" его решение. Подставим вместо х единицу.

d = 5*1Л3 - 3 - 70.625 = -68.125

Пока "холодно", подставим х=2.

d = 40 - 6 -70.625 = -36.625

Это уже "теплее", проверим теперь х=3.

d = 5*27 - 15 - 70.625 = 49.375

Надо же - опять "холодно", но обратите внимание на то, что наша "невязка" d изменила знак. Раньше она была отрицательной, а теперь стала положительной. Это говорит о том, что мы проскочили мимо спрятанного корня и ушли не в ту сторону. Надо вернуться назад и искать более тщательно, пойдем от числа х=2 более аккуратно. Вместо шагов по единице будем шагать по 0.1.

Проверим х=2.1, х=2.2 и так далее, пока не дойдем до х=2.5. Вот это и будет "АФРИКА" - точное решение, при котором "невязка" равна нулю.

К сожалению, точное решение возможно только для таких простых уравнений, как наше. А что делать, если уравнение посложнее? Например: 2хЛ0.8 - LN(3x) - 1.7 = 0

Оно не имеет точного решения, да ведь оно нам и не нужно! Давайте зададим величину "b", которая является предельно допустимой "невязкой", и будем бегать, подставляя X, взад-вперед, уменьшая шаг в десять раз после каждого изменения знака "невязки" до тех пор, пока она не окажется меньше ранее заданного числа "b".

Как видите, все очень просто. Конечно, с карандашом на бумаге двадцать раз вычислять одно и то же выражение занятие не из приятных, ну а для чего нам компьютер? Он сам и подставит значение "х" и подсчитает невязку "d" и сравнит ее с предельной величиной "b" и, если предел не достигнут, изменит х, снова все посчитает, проверит знак "невязки" и т.д. Этот прием очень просто алгоритмизируется.

10 INPUT x: REM Начальное значение x Вы должны задать сами.

20 INPUT b: REM Предельное значение "невязки". Чем оно меньше, тем точнее Ваш расчет, но тем

больше времени он потребует. 30 INPUT a: REM Это начальное значение шага по "x". Далее компьютер будет рассчитывать его сам.

40 GO SUB 500: REM Расчет "невязки". 50 IF ABS d<b THEN GO TO 800 60 LET m=d 70 LET x=x+a 80 GO SUB 500

90 IF ABS d<b THEN GO TO 800 100 IF SGN d <> SGN m THEN GO TO 600 110 IF ABS d > ABS m THEN GO TO 700 120 GO TO 60

500 LET d =.....................

(Здесь надо записать Ваше уравнение) 510 PRINT "x= ";x, "d= ";d 520 RETURN

600 REM Если мы "проскочили" мимо корня, надо вернуться на шаг назад и уменьшить величину

шага. 610 LET x=x-a 620 LET a=a/10 630 GO TO 70

700 REM Если "невязка" после шага стала больше, чем была, значит мы пошли не в ту сторону.

Надо вернуться на шаг назад и изменить знак шага (идти в другую сторону). 710 LET x=x-a 720 LET a=-a 730 GO TO 70

800 STOP

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

Желаем успеха!

Ваш "ИНФОРКОМ




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Part 9 - October games charts.
Мнение - Scratcher разбирает письма одного жаждущего мести поклонника C-NET.
Истории - о "самоубийстве" сэра Клайва Синклера.
Глюк - Глюки в TASM'e, Dizzy 4 (русский , ф.Sunsoft), Звездное наследие.
Комьюнити - сценеры шутят.

В этот день...   16 апреля