Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Оглавление.

Введение.

1.  Постановка задачи.

2.  Описание сайта.

2.1. Условия работы сайта.

2.2. Структура сайта.

3.  Руководство пользователя.

4.  Приложение 1 (распечатка текста программы).

5.  Приложение 2 (распечатка видов сайта в работе).

Список использованного материала.

Введение.

Рынок программного обеспечения (ПО) берет свое начало в России в конце 80-х гг., то есть с появлением первых персональных компьютеров и развитием бизнеса в России.

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

В 90-е гг. с появлением российской ветви Internet компьютеры становятся средством связи. ПО начинает выпускаться на заказ, то есть формируется рынок ПО.

Internet появился еще в 60-е гг., но долгое время использовался лишь узким кругом специалистов в основном для передачи электронной почты.

В 1993 г. появился первый графический браузер MOSAIC, позволяющий получать не только текст, но и графические изображения. Главной его особенностью явилась технология гиперссылки (фрагмент документа, щелчок мышью на котором вызывает переход к другому документу или к другому месту). Благодаря технологиям гипертекста документы Internet оказались связанными в единую систему WWW.

Но в мире браузеров происходят качественные изменения. Одним из них явилась возможность создавать интерактивные Web-документы, то есть документы с исполняемым содержимым (исполняются либо средствами браузеров либо на сервере).

НЕ нашли? Не то? Что вы ищете?

Данный сайт и был разработан как интерактивный документ для обучения методам вычисления. Cайт представляет собой электронное учебное пособие (самоучитель) для обучения некоторым из методов вычисления. И поэтому может быть интересен, и использован широким кругом пользователей. Еще один плюс именно этого сайта – отсутствие распространенной ошибки: здесь нет “тупиковых” страниц, то есть страниц, на которых нет дальнейших ссылок (с любой страницы можно попасть на любую другую некоторым маршрутом).

1.  Постановка задачи.

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

2.  Описание сайта.

2.1.Условия работы сайта.

Для работы с сайтом необходимо иметь: компьютер не ниже Pentium-133, браузер (Microsoft) Internet Explorer версии 4 или выше.

Желательно, чтобы компьютер был оснащен звуковой картой.
Наилучшее разрешение экрана для работы : 800 х 600.

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

2.2. Структура сайта.

Перемещение по документам сайта осуществляются с помощью, так называемого, МЕНЮ:

Первым разделом, с которого следует начать работу, несомненно, является раздел "ТЕОРИЯ". Он содержит теоретический материал, описывающий метод вычисления. Первая часть посвящена общим определениям и понятиям. Вторая часть посвящена собственно описанию самого метода.

Далее советуем Вам просмотреть раздел "ПРИМЕРЫ". Здесь Вы найдете несколько примеров, иллюстрирующих описанный метод.
Для закрепления материала мы предлагаем раздел "ОБУЧЕНИЕ", в котором Вы сможете прорешать несколько примеров самостоятельно, но под тщательным контролем компьютера. То есть, если в процессе решения Вы допустите ту или иную ошибку, машина тут же ее заметит и сообщит Вам об этом.

Если Вы последовательно прочитали все выше указанные пункты меню, сделали все обучающие задания правильно, тогда смело выбирайте раздел "ЗАДАНИЯ". Здесь Вам будут предложены задания для самостоятельных вычислений.

Для проверки правильно ли Вы решили эти задания, выберите раздел "ОТВЕТЫ".
И, наконец, пункт меню "СЮРПРИЗ". Не будем раскрывать абсолютно все карты. Выберите этот пункт, и Вас действительно ждет сюрприз!!!

Именно так выглядит один из пунктов сайта “О САЙТЕ”.

3.  Руководство пользователя.

Сайт состоит из нескольких страниц. Как уже было сказано передвигаться по сайту можно с помощью меню (оно описано в пункте структура сайта).

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

Как и в любом другом учебнике, начать следует с раздела ТЕОРИЯ. Здесь пользователю просто предложен теоретический материал. Вы можете его прочитать, перемещаясь по странице с помощью вертикальной полосы прокрутки.

На мой взгляд, преимуществом сайта является то, что некоторые пункты можно пропустить. Так, например, если Вы уже знаете теоретическую часть метода прогонки, то без проблем можно сразу начать с раздела ПРИМЕРЫ, и посмотреть, как этот метод работает на практике. Здесь Вам будут предложены несколько примеров хорошо иллюстрирующих метод. Пользователь может отметить в специальном окошке тот пример, разбор которого его интересует. А, нажав кнопку “просмотр”, Вы увидите объяснение всего решения. Причем, примеры можно выбирать в любом порядке.

Если в школе на уроках дети вместе с учителем решают задачи на пройденную тему, то в нашем случае в качестве учителя выступает компьютер. Процесс закрепления теории осуществляется в разделе ОБУЧЕНИЕ. Здесь, как и с примерами, Вам нужно выбрать задание и нажать кнопку “начать”. После чего откроется новая страничка, на которой пользователь сможет сам решить задание, оформляя его в виде теста. То есть, каждый Ваш шаг контролируется машиной, а именно, задается вопрос, затем предлагается несколько вариантов ответов, из которых Вы должны сделать выбор и нажать кнопку ”ввод”. Далее машина проанализирует ответ и выведет сообщение о правильности ввода, а в случае допущения пользователем ошибки - сообщение об ошибке.

Проводя аналогию со школой, далее должна быть контрольная работа. Но поскольку сайт рассчитан все же на достаточно взрослую аудиторию, назовем контрольную работу разделом ЗАДАНИЯ. Здесь просто записаны несколько заданий для самостоятельного решения.

Ну, а чтобы проверить правильность Ваших вычислений, ответы Вы найдете на страничке ОТВЕТЫ.

Остался неописанным один пункт сайта – СЮРПРИЗ. В самой программе, чтобы посмотреть, что представляет собой этот раздел, необходимо посетить его. Но здесь я его все же опишу.

‘Добро пожаловать!”

Так начинается СЮРПРИЗ.

“Вы изучили теорию, разобрали примеры, порешали задания самостоятельно. И все это благодаря компьютеру. Но, разве только для этого необходимы нам компьютеры, спросите Вы? Конечно же нет.

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

Думаю, это было бы довольно неприятно, если бы не раздел СЮРПРИЗ. Здесь на языке JavaScript запрограммирован уже изученный Вами метод, но для разнообразия метод левой прогонки. С его помощью Вы сможете решать задачи большой размерности. В общем, нажмите кнопку СЮРПРИЗ и Вы сами все увидите.“

Думаю, теперь Вам все стало понятно. После того как пользователь нажмет кнопку “сюрприз”, откроется новая страница, состоящая из двух фреймов, в каждый из которых загружаются разные документы. Сначала пользователю предложат ввести размерность матрицы коэффициентов для интересующей его задачи, и нажать кнопку ”создать”. После этого во второй фрейм загрузиться динамически созданная матрица указанной размерности. Часть матрицы уже будет заполнена нулями (а именно, пустыми останутся только ячейки на трех главных диагоналях, так как метод прогонки используется для решения задач с трехдиагональной матрицей коэффициентов). Далее необходимо будет ввести в свободные ячейки матрицы коэффициенты и заполнить столбец свободных членов. После ввода нужно нажать кнопку “расчет”, и система выдаст ответ, а также промежуточные коэффициенты Gamma и Delta.

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

Перемещаться по страничкам можно, используя возможности Internet Explorer (“назад” и ”вперед”, если странички уже загружены). На каждой страничке присутствует также картинка EXIT, являющаяся гиперссылкой на главную страницу. На некоторых страницах присутствуют гиперссылки на разделы сайта, возможно при посещении данной страницы.

4.  Приложение 1(распечатка текста программы).

Текст программы Главной странички.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<HTML>

<HEAD>

<TITLE>Методы вычисления</TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!-- Begin JavaScript Applet

{

timerOne=window. setTimeout('runningBuffer(20)',1)

}

function runningBuffer(linePosition)

{

// linePosition gives status window location of first message character

var gap = " ";

var dots = " ...... ";

var phrase1 = "Обучающий сайт по Методам Вычисления";

var phrase2 = " ";

var phrase3 = "";

var message = phrase1+phrase2+dots;

var statusLine = "";

// Move left one position but don't let pointer decrement indefinitely

if (linePosition <= - message. length)

linePosition=gap. length;

else

linePosition--;

// Add message into statusLine

if (linePosition <= 0) {

// Miss out left part of message

statusLine=message. substring(-linePosition, message. length);

// Add inter-message gap and duplicate message for wrap-around

statusLine+=gap+message;

}

else {

// Pad from left with spaces if necessary

for (count=0; count<linePosition; count++)

statusLine+=" ";

// Use whole message

statusLine+=message;

}

// Display it

window. status=statusLine;

// Repeat ad infinitum

var cmd="runningBuffer(" + linePosition + ")";

timerTwo=window. setTimeout(cmd,200);

}

// End JavaScript Applet -->

</SCRIPT>

</HEAD>

<BODY link="black" vlink="black" background="CultTextL. jpg" onLoad="timerOne=window. setTimeout('runningBuffer(20)',1);">

<font face="Times New Roman" size="+4"><i><b><center><MARQUEE behavior="scroll" align="middle">Методы вычисления</marquee></center></b></i></font>

<table align="center" height="80%" width="60%" border="0">

<tr>

<td><table align="center" height="80%" width="60%" border="0">

<tr>

<td><center><a href="Примеры. html">ПРИМЕРЫ</a></center></td>

</tr>

<tr>

<td><center><a

href="Обучение. html">ОБУЧЕНИЕ</a></center></td>

</tr>

</table>

</td>

<td><table align="center" height="80%" width="60%" border="0">

<tr>

<td><center><a href="Теория. html">ТЕОРИЯ</a></center></td>

</tr>

<tr>

<td><center><a href="О сайте. html"><b><font size="+1">О САЙТЕ</font></b></a></center></td>

</tr>

<tr>

<td><center><a href="Сюрприз. html">СЮРПРИЗ</center></a></td>

</tr>

</table>

</td>

<td><table align="center" height="80%" width="60%" border="0">

<tr>

<td><center><a href="Задания. html">ЗАДАНИЯ</a></center></td>

</tr>

<tr>

<td><center><a href="Ответы. html">ОТВЕТЫ</a></center></td>

</tr>

</table>

</td>

</tr>

</table>

<center><i><font size="+1"><b>ЕСЛИ ВЫ ЗАИНТЕРЕСОВАЛИСЬ САЙТОМ, СОВЕТУЕМ ВАМ НАЧАТЬ С <br>ПУНКТА "О САЙТЕ".</b></font></i></center>

</BODY>

</HTML>

Текст программы странички Обучение 1.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<HTML>

<HEAD>

<TITLE>Обучение 1</TITLE>

<script language="JavaScript">

function view1()

{

if(i1.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view2()

{

if(f4.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view3()

{

if(in1.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view4()

{

if(a. value=="-4/5")

alert("Значение альфа введено верно");

else alert("Значение альфа введено не верно. Попробуйте еще.");

if(b. value=="-1")

alert("Значение бетта введено верно");

else alert("Значение бетта введено не верно. Попробуйте еще.");

}

function view5()

{

if(ff2.checked&ff3.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view6()

{

if(ind2.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view7()

{

if(a1.value=="-10/11")

alert("Значение альфа введено верно");

else alert("Значение альфа введено не верно. Попробуйте еще.");

if(b1.value=="-5/11")

alert("Значение бетта введено верно");

else alert("Значение бетта введено не верно. Попробуйте еще.");

}

function view8()

{

if(d2.checked&d3.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view9()

{

if(ex3.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view10()

{

if(a2.value=="33")

alert("Значение альфа введено верно");

else alert("Значение альфа введено не верно. Попробуйте еще.");

if(b2.value=="-94")

alert("Значение бетта введено верно");

else alert("Значение бетта введено не верно. Попробуйте еще.");

}

function view11()

{

if(l6.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view12()

{

if(x1.value=="6/5")

alert("Значение хи2 введено верно");

else alert("Значение хи2 введено не верно. Попробуйте еще.");

if(n1.value=="-3")

alert("Значение мю2 введено верно");

else alert("Значение мю2 введено не верно. Попробуйте еще.");

}

function view13()

{

if(m5.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view14()

{

if(y1.value=="3")

alert("Значение y3 введено верно");

else alert("Значение y3 введено не верно. Попробуйте еще.");

}

function view15()

{

if(z3.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view16()

{

if(r1.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view17()

{

if(y2.value=="5")

alert("Значение y2 введено верно");

else alert("Значение y2 введено не верно. Попробуйте еще.");

}

function view18()

{

if(p2.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view19()

{

if(k1.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view20()

{

if(otv. value=="-5")

alert("Значение y1 введено верно");

else alert("Значение y1 введено не верно. Попробуйте еще.");

}

function view21()

{

if(c1.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view22()

{

if(w1.checked)

alert("Правильно");

else alert("Не правильный выбор. Попробуйте еще.");

}

function view23()

{

if(last. value=="3")

alert("Значение y0 введено верно");

else alert("Значение y0 введено не верно. Попробуйте еще.");

}

</script>

</HEAD>

<BODY BACKGROUND="CultTextL. jpg">

&nbsp;&nbsp;&nbsp;<B><I><FONT FACE="Times New Roman">Задание 1</B></I></FONT> </P>

<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5*y0 + 4*y1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &nbsp;-5

<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y0 + 3*y1 + 2*y2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &nbsp;-2

<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-y1 &nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;y2 + 3*y3 = &nbsp;9

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6*y2 - 5*y3 = 15

<br>Все ответы вводите в виде простых дробей

<br><br>

1).Выберите номер индекса, для которого начнете процесс решения. <br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="i1" name="index" value="0" align="RIGHT" checked>

i=0

<br><input type="Radio" id="i2" name="index" value="1" align="RIGHT">

i=1

<br><input type="Radio" id="i3" name="index" value="2" align="RIGHT">

i=2

<br><input type="Radio" id="i4" name="index" value="3" align="RIGHT">

i=3

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view1();">

<br><br>2).Выберите формулу для вычисления.

<br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="f1" name="formula" value="0" align="RIGHT" checked>

<img src="Image85.gif" width=122 height=24 border=0>

<br><br><input type="Radio" id="f2" name="formula" value="1" align="RIGHT">

<img src="Image93.gif" width=109 height=46 border=0>

<br><br><input type="Radio" id="f3" name="formula" value="2" align="RIGHT">

<img src="Image95.gif" width=110 height=46 border=0>

<br><br><input type="Radio" id="f4" name="formula" value="3" align="RIGHT">

<img src="Image100.gif" width=97 height=24 border=0>

<br><br><input type="Radio" id="f5" name="formula" value="4" align="RIGHT">

<img src="Image105.gif" width=115 height=46 border=0>

<br><br><input type="Radio" id="f6" name="formula" value="4" align="RIGHT">

</FONT>y<SUB>N</SUB> = <FONT FACE="Symbol">А</FONT> <SUB>2</SUB>y<SUB>N-1</SUB> + <FONT FACE="Symbol">m</FONT><SUB>2</sub>

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view2();">

<br><br>3).Выберите номер индекса для вычисления <img src="Image86.gif" width=18 height=24 border=0> и <img src="Image87.gif" width=18 height=24 border=0>.

<br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="in1" name="index1" value="0" align="RIGHT" checked>

i=0

<br><input type="Radio" id="in2" name="index1" value="1" align="RIGHT">

i=1

<br><input type="Radio" id="in3" name="index1" value="2" align="RIGHT">

i=2

<br><input type="Radio" id="in4" name="index1" value="3" align="RIGHT">

i=3

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view3();">

<br><br>4). Введите значения коэффициентов <img src="Image86.gif" width=18 height=24 border=0> и <img src="Image87.gif" width=18 height=24 border=0>.

<br>После ввода нажмите кнопку ВВОД.

<br><img src="Image86.gif" width=18 height=24 border=0>:<input type="Text" name="alfa" align="RIGHT" size="6" id="a" value="">

<br><img src="Image87.gif" width=18 height=24 border=0>:<input type="Text" name="betta" align="RIGHT" size="6" id="b" value="">

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view4();">

<br><br>5). Выберите формулы для дальнейшего вычисления.

<br>После выбора нажмите кнопку ВВОД.

<br><input type="Checkbox" id="ff1" name="formula1" value="0" align="RIGHT" checked>

<img src="Image85.gif" width=122 height=24 border=0>

<br><br><input type="Checkbox" id="ff2" name="formula1" value="1" align="RIGHT">

<img src="Image93.gif" width=109 height=46 border=0>

<br><br><input type="Checkbox" id="ff3" name="formula1" value="2" align="RIGHT">

<img src="Image95.gif" width=110 height=46 border=0>

<br><br><input type="Checkbox" id="ff4" name="formula1" value="3" align="RIGHT">

<img src="Image100.gif" width=97 height=24 border=0>

<br><br><input type="Checkbox" id="ff5" name="formula1" value="4" align="RIGHT">

<img src="Image105.gif" width=115 height=46 border=0>

<br><br><input type="Checkbox" id="ff6" name="formula1" value="4" align="RIGHT">

</FONT>y<SUB>N</SUB> = <FONT FACE="Symbol">А</FONT> <SUB>2</SUB>y<SUB>N-1</SUB> + <FONT FACE="Symbol">m</FONT><SUB>2</sub>

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view5();">

<br><br>6). Выберите номер индекса для вычисления <img src="Image86.gif" width=18 height=24 border=0> и <img src="Image87.gif" width=18 height=24 border=0>.

<br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="ind1" name="index2" value="0" align="RIGHT" checked>

i=0

<br><input type="Radio" id="ind2" name="index2" value="1" align="RIGHT">

i=1

<br><input type="Radio" id="ind3" name="index2" value="2" align="RIGHT">

i=2

<br><input type="Radio" id="ind4" name="index2" value="3" align="RIGHT">

i=3

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view6();">

<br><br>7). Введите значения коэффициентов <img src="Image86.gif" width=18 height=24 border=0> и <img src="Image87.gif" width=18 height=24 border=0>.

<br>После ввода нажмите кнопку ВВОД.

<br><img src="Image86.gif" width=18 height=24 border=0>:<input type="Text" name="alfa" align="RIGHT" size="6" id="a1" value="">

<br><img src="Image87.gif" width=18 height=24 border=0>:<input type="Text" name="betta" align="RIGHT" size="6" id="b1" value="">

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view7();">

<br><br>8). Выберите формулы для дальнейшего вычисления.

<br>После выбора нажмите кнопку ВВОД.

<br><input type="Checkbox" id="d1" name="formula2" value="0" align="RIGHT" checked>

<img src="Image85.gif" width=122 height=24 border=0>

<br><br><input type="Checkbox" id="d2" name="formula2" value="1" align="RIGHT">

<img src="Image93.gif" width=109 height=46 border=0>

<br><br><input type="Checkbox" id="d3" name="formula2" value="2" align="RIGHT">

<img src="Image95.gif" width=110 height=46 border=0>

<br><br><input type="Checkbox" id="d4" name="formula2" value="3" align="RIGHT">

<img src="Image100.gif" width=97 height=24 border=0>

<br><br><input type="Checkbox" id="d5" name="formula2" value="4" align="RIGHT">

<img src="Image105.gif" width=115 height=46 border=0>

<br><br><input type="Checkbox" id="d6" name="formula2" value="4" align="RIGHT">

</FONT>y<SUB>N</SUB> = <FONT FACE="Symbol">А</FONT> <SUB>2</SUB>y<SUB>N-1</SUB> + <FONT FACE="Symbol">m</FONT><SUB>2</sub>

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view8();">

<br><br>9). Выберите номер индекса для вычисления <img src="Image86.gif" width=18 height=24 border=0> и <img src="Image87.gif" width=18 height=24 border=0>.

<br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="ex1" name="index3" value="0" align="RIGHT" checked>

i=0

<br><input type="Radio" id="ex2" name="index3" value="1" align="RIGHT">

i=1

<br><input type="Radio" id="ex3" name="index3" value="2" align="RIGHT">

i=2

<br><input type="Radio" id="ex4" name="index3" value="3" align="RIGHT">

i=3

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view9();">

<br><br>10). Введите значения коэффициентов <img src="Image86.gif" width=18 height=24 border=0> и <img src="Image87.gif" width=18 height=24 border=0>.

<br>После ввода нажмите кнопку ВВОД.

<br><img src="Image86.gif" width=18 height=24 border=0>:<input type="Text" name="alfa" align="RIGHT" size="6" id="a2" value="">

<br><img src="Image87.gif" width=18 height=24 border=0>:<input type="Text" name="betta" align="RIGHT" size="6" id="b2" value="">

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view10();">

<br><br>11). Выберите формулу для дальнейшего вычисления.

<br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="l1" name="formula3" value="0" align="RIGHT" checked>

<img src="Image85.gif" width=122 height=24 border=0>

<br><br><input type="Radio" id="l2" name="formula3" value="1" align="RIGHT">

<img src="Image93.gif" width=109 height=46 border=0>

<br><br><input type="Radio" id="l3" name="formula3" value="2" align="RIGHT">

<img src="Image95.gif" width=110 height=46 border=0>

<br><br><input type="Radio" id="l4" name="formula3" value="3" align="RIGHT">

<img src="Image100.gif" width=97 height=24 border=0>

<br><br><input type="Radio" id="l5" name="formula3" value="4" align="RIGHT">

<img src="Image105.gif" width=115 height=46 border=0>

<br><br><input type="Radio" id="l6" name="formula3" value="4" align="RIGHT">

</FONT>y<SUB>N</SUB> = <FONT FACE="Symbol">А</FONT> <SUB>2</SUB>y<SUB>N-1</SUB> + <FONT FACE="Symbol">m</FONT><SUB>2</sub>

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view11();">

<br><br>12). Введите <FONT FACE="Symbol">А</FONT> <SUB>2</sub> и <FONT FACE="Symbol">m</FONT><SUB>2</sub>.

<br>После ввода нажмите кнопку ВВОД.

<br><FONT FACE="Symbol">А</FONT> <SUB>2</sub>:<input type="Text" name="x" align="RIGHT" size="6" id="x1" value="">

<br><FONT FACE="Symbol">m</FONT><SUB>2</sub>:&nbsp;&nbsp;<input type="Text" name="n" align="RIGHT" size="6" id="n1" value="">

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view12();">

<br><br>13). Выберите формулу для дальнейшего вычисления.

<br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="m1" name="formula4" value="0" align="RIGHT" checked>

<img src="Image85.gif" width=122 height=24 border=0>

<br><br><input type="Radio" id="m2" name="formula4" value="1" align="RIGHT">

<img src="Image93.gif" width=109 height=46 border=0>

<br><br><input type="Radio" id="m3" name="formula4" value="2" align="RIGHT">

<img src="Image95.gif" width=110 height=46 border=0>

<br><br><input type="Radio" id="m4" name="formula4" value="3" align="RIGHT">

<img src="Image100.gif" width=97 height=24 border=0>

<br><br><input type="Radio" id="m5" name="formula4" value="4" align="RIGHT">

<img src="Image105.gif" width=115 height=46 border=0>

<br><br><input type="Radio" id="m6" name="formula4" value="4" align="RIGHT">

</FONT>y<SUB>N</SUB> = <FONT FACE="Symbol">А</FONT> <SUB>2</SUB>y<SUB>N-1</SUB> + <FONT FACE="Symbol">m</FONT><SUB>2</sub>

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view13();">

<br><br>14). Введите Значение y<SUB>3</sub>.

<br>После ввода нажмите кнопку ВВОД.

<br>y<SUB>3</sub>:<input type="Text" name="y" align="RIGHT" size="6" id="y1" value="">

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view14();">

<br><br>15). Выберите номер индекса для дальнейших вычислений. <br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="z1" name="index4" value="0" align="RIGHT" checked>

i=0

<br><input type="Radio" id="z2" name="index4" value="1" align="RIGHT">

i=1

<br><input type="Radio" id="z3" name="index4" value="2" align="RIGHT">

i=2

<br><input type="Radio" id="z4" name="index4" value="3" align="RIGHT">

i=3

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view15();">

<br><br>16). Выберите формулу для дальнейшего вычисления.

<br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="r1" name="formula5" value="0" align="RIGHT" checked>

<img src="Image85.gif" width=122 height=24 border=0>

<br><br><input type="Radio" id="r2" name="formula5" value="1" align="RIGHT">

<img src="Image93.gif" width=109 height=46 border=0>

<br><br><input type="Radio" id="r3" name="formula5" value="2" align="RIGHT">

<img src="Image95.gif" width=110 height=46 border=0>

<br><br><input type="Radio" id="r4" name="formula5" value="3" align="RIGHT">

<img src="Image100.gif" width=97 height=24 border=0>

<br><br><input type="Radio" id="r5" name="formula5" value="4" align="RIGHT">

<img src="Image105.gif" width=115 height=46 border=0>

<br><br><input type="Radio" id="r6" name="formula5" value="4" align="RIGHT">

</FONT>y<SUB>N</SUB> = <FONT FACE="Symbol">А</FONT> <SUB>2</SUB>y<SUB>N-1</SUB> + <FONT FACE="Symbol">m</FONT><SUB>2</sub>

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view16();">

<br><br>17). Введите Значение y<SUB>2</sub>.

<br>После ввода нажмите кнопку ВВОД.

<br>y<SUB>2</sub>:<input type="Text" name="yy" align="RIGHT" size="6" id="y2" value="">

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view17();">

<br><br>18). Выберите номер индекса для дальнейших вычислений. <br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="p1" name="index5" value="0" align="RIGHT" checked>

i=0

<br><input type="Radio" id="p2" name="index5" value="1" align="RIGHT">

i=1

<br><input type="Radio" id="p3" name="index5" value="2" align="RIGHT">

i=2

<br><input type="Radio" id="p4" name="index5" value="3" align="RIGHT">

i=3

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view18();">

<br><br>19). Выберите формулу для дальнейшего вычисления.

<br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="k1" name="formula6" value="0" align="RIGHT" checked>

<img src="Image85.gif" width=122 height=24 border=0>

<br><br><input type="Radio" id="k2" name="formula6" value="1" align="RIGHT">

<img src="Image93.gif" width=109 height=46 border=0>

<br><br><input type="Radio" id="k3" name="formula6" value="2" align="RIGHT">

<img src="Image95.gif" width=110 height=46 border=0>

<br><br><input type="Radio" id="k4" name="formula6" value="3" align="RIGHT">

<img src="Image100.gif" width=97 height=24 border=0>

<br><br><input type="Radio" id="k5" name="formula6" value="4" align="RIGHT">

<img src="Image105.gif" width=115 height=46 border=0>

<br><br><input type="Radio" id="k6" name="formula6" value="4" align="RIGHT">

</FONT>y<SUB>N</SUB> = <FONT FACE="Symbol">А</FONT> <SUB>2</SUB>y<SUB>N-1</SUB> + <FONT FACE="Symbol">m</FONT><SUB>2</sub>

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view19();">

<br><br>20). Введите Значение y<SUB>1</sub>.

<br>После ввода нажмите кнопку ВВОД.

<br>y<SUB>1</sub>:<input type="Text" name="xy" align="RIGHT" size="6" id="otv" value="">

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view20();">

<br><br>21). Выберите номер индекса для дальнейших вычислений. <br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="c1" name="index6" value="0" align="RIGHT" checked>

i=0

<br><input type="Radio" id="c2" name="index6" value="1" align="RIGHT">

i=1

<br><input type="Radio" id="c3" name="index6" value="2" align="RIGHT">

i=2

<br><input type="Radio" id="c4" name="index6" value="3" align="RIGHT">

i=3

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view21();">

<br><br>22). Выберите формулу для дальнейшего вычисления.

<br>После выбора нажмите кнопку ВВОД.

<br><input type="Radio" id="w1" name="formula7" value="0" align="RIGHT" checked>

<img src="Image85.gif" width=122 height=24 border=0>

<br><br><input type="Radio" id="w2" name="formula7" value="1" align="RIGHT">

<img src="Image93.gif" width=109 height=46 border=0>

<br><br><input type="Radio" id="w3" name="formula7" value="2" align="RIGHT">

<img src="Image95.gif" width=110 height=46 border=0>

<br><br><input type="Radio" id="w4" name="formula7" value="3" align="RIGHT">

<img src="Image100.gif" width=97 height=24 border=0>

<br><br><input type="Radio" id="w5" name="formula7" value="4" align="RIGHT">

<img src="Image105.gif" width=115 height=46 border=0>

<br><br><input type="Radio" id="w6" name="formula7" value="4" align="RIGHT">

</FONT>y<SUB>N</SUB> = <FONT FACE="Symbol">А</FONT> <SUB>2</SUB>y<SUB>N-1</SUB> + <FONT FACE="Symbol">m</FONT><SUB>2</sub>

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view22();">

<br><br>23). Введите Значение y<SUB>0</sub>.

<br>После ввода нажмите кнопку ВВОД.

<br>y<SUB>0</sub>:<input type="Text" name="g" align="RIGHT" size="6" id="last" value="">

<br><br><input type="Button" name="knopka" value="Ввод" align="right" onclick="view23();">

<br><br><br>Ну, вот, если на все Ваши действия компьютер давал положительные ответы, то поздравляем, Вы правильно решили задание 1, найдя y0,y1,y2,y3.<br>Теперь можете перейти к заданию 2, 3, 4.

<br><br><br><br><br><font size="+1" color="Blue"><p align="left"><a href="Обучение. html">Вернуться к списку обучающих заданий</a></font>.

<br><br><br><br><p align="right"><a href="start. html"><img src="5555.gif" width=52 height=22 border=0 alt="Вернуться на главную страницу"></a>

</BODY>

</HTML>

Текст программы странички Сюрприз.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<HTML>

<HEAD>

<TITLE>Untitled</TITLE>

<script language="JavaScript">

var zapusk=0;

function test(rang)

{

var k=1;

var i, tab_ind;

//Ссылка на объект с именем matris_frame

var win=parent. window. frames("matris_frame");

if (zapusk!=0)

return;

zapusk++;

tab_ind=3;

win. document. write("<body background='CultTextL. jpg'>");

win. document. write("<center>Заполните свободные ячейки в матрице</center>");

win. document. write("<form name='matrx_form'><table align='center' border='5' cellpadding='2' cellpadding='2'><tr>")

//Создание первых двух ячеек матрицы

win. document. write("<td width='50px'><input type='Text' name='name' value='' id='m_el[0]' align='MIDDLE' size='5' maxlength='10' tabindex='"+(tab_ind-2)+"'></td>");

win. document. write("<td width='50px'><input type='Text' name='name' value='' id='m_el[1]' align='MIDDLE' size='5' maxlength='10' tabindex='"+(tab_ind-1)+"'></td>");

//Заполнение нулями первой строки матрицы

for (i=3;i<=rang;i++)

win. document. write("<td width='50px'><input type='Text' name='name' value='0' id='m_el["+(i-1)+"]' align='MIDDLE' size='5' maxlength='10' readonly></td>");

win. document. write("</tr><tr>");

//Цикл создания матрицы без последней строки

for(k=1;k<=(rang-2);k++)

{

//Цикл создания одной строки

for (i=1;i<rang;i++)

{

//Нахождение первого поля для ввода в создаваемой строке(это есть элемент //нижней диагонали)

if (i==k)

{

//Создание трех полей для ввода в строке

win. document. write("<td width='50px'><input type='Text' name='name' value='' id='m_el["+((k*rang)+i)+"]' align='MIDDLE' size='5' maxlength='10' tabindex='"+(tab_ind)+"'></td>");

win. document. write("<td width='50px'><input type='Text' name='name' value='' id='m_el["+((k*rang)+i+1)+"]' align='MIDDLE' size='5' maxlength='10' tabindex='"+(tab_ind+1)+"'></td>");

win. document. write("<td width='50px'><input type='Text' name='name' value='' id='m_el["+((k*rang)+i+2)+"]' align='MIDDLE' size='5' maxlength='10' tabindex='"+(tab_ind+2)+"'></td>");

i+=1;

tab_ind+=3;

}

//Создание поля с нулем

else

{

win. document. write("<td width='50px'><input type='Text' name='name' value='0' id='m_el["+((k*rang)+i)+"]' align='MIDDLE' size='5' maxlength='10' readonly></td>");

}

}

//Перевод строки

win. document. write("</tr><tr>");

}

win. document. write("</tr><tr>");

//Создание последней строки матрицы

for (i=(rang*(rang-1)+1);i<=rang*rang-2;i++)

//Создание нулевых полей

win. document. write("<td width='50px'><input type='Text' name='name' value='0' id='m_el["+(i-1)+"]' align='MIDDLE' size='5' maxlength='10' readonly></td>");

//Создание двух полей для ввода

win. document. write("<td width='50px'><input type='Text' name='name' value='' id='m_el["+(rang*rang-1)+"]' align='MIDDLE' size='5' maxlength='10' tabindex='"+tab_ind+"'></td>");

win. document. write("<td width='50px'><input type='Text' name='name' value='' id='m_el["+(rang*rang)+"]' align='MIDDLE' size='5' maxlength='10' tabindex='"+(tab_ind+1)+"'></td>");

tab_ind+=2;

win. document. write("</tr></table></form><center>Столбец свободных членов</center><form name='free_class'>");

win. document. write("<table align='center' border='5' cellpadding='2' cellpadding='2'><tr>");

//Создание полей для ввода столбца свободных членов

for(i=1;i<=rang;i++)

win. document. write("<td width='50px'><input type='Text' name='name' value='' id='m_ef["+(rang*rang-1)+"]' align='MIDDLE' size='5' maxlength='10' tabindex='"+tab_ind+"'></td>");

win. document. write("</tr></table></form>");

}

//Функция расчета метода

function calc(rang)

{

//Инициализация переменных

var k=new Array(rang*rang);

var x=new Array(rang);

var f=new Array(rang);

var gamma=new Array(rang);

var delta=new Array(rang);

var win=parent. window. frames("matris_frame");

var i, n;

var index1;

//Обращение к элементам матрицы через форму

var s=parent. frames('matris_frame').document. forms[0].elements;

//Обращение к элементам столбца свободных членов через форму

var v=parent. frames('matris_frame').document. forms[1].elements;

n=rang;

for(i=0;i<s. length;i++)

if (s[i].value=='')

{

alert("Не все поля матрицы заполнены");

return;

}

for(i=0;i<v. length;i++)

if (v[i].value=='')

{

alert("Не все свободные члены введены");

return;

}

//Сообщение в строке состояния

top. window. status="Подождите идут вычисления..."

//Считывание в массив элементов матрицы

for(i=0;i<(n * n);i++)

{

//Явное преобразование s[i].value для корректных математических вычислений

k[i]=parseFloat(s[i].value);

}

//Считывание в массив свободных членов

for (i=0;i<n;i++)

{

f[i]=parseFloat(v[i].value);

}

//Вычисление последних gamma & delta

gamma[n-2]=-k[(n * n)-2]/k[(n * n)-1];

delta[n-2]=f[n-1]/k[(n * n)-1];

//Вычисление остальных gamma & delta

i=(n-2);

for(i=i;i>0;i--)

{

//Вычисления с учетом явного преобразования n к типу Int

gamma[i-1]=-k[i * (parseInt(n)+1)-1]/(k[i * (parseInt(n)+1)]+(k[i * (parseInt(n)+1)+1] * gamma[i]));

delta[i-1]=(f[i]-(k[i * (parseInt(n)+1)+1] * delta[i]))/(k[i * (parseInt(n)+1)]+(k[i * (parseInt(n)+1)+1] * gamma[i]));

}

//Вычисление Х[0] из первого уравнения путем выражения Х[1] через gamma [0] и delta [0]

x[0]=(f[0]-(k[1] * delta[0]))/(k[0]+(k[1] * gamma[0]));

//Вычисление остальных X[i]

for(i=1;i<n;i++)

{

x[i]=gamma[i-1] * x[i-1]+delta[i-1];

}

//Создание таблицы ответов

win. document. write("<table align='center' border='5' cellpadding='2' cellpadding='2'><tr>");

//Создание заголовков таблицы

win. document. write("<th>Параметр</th>");

for(i=0;i<n;i++)

win. document. write("<th>"+i+"</th>");

win. document. write("</tr><tr><td width='50px'>Gamma</td>");

for(i=0;i<n-1;i++) win. document. write("<td><center>"+gamma[i]+"</center></td>");

win. document. write("<td>Такого параметра нет</td>");

win. document. write("</tr><tr><td width='50px'>Delta</td>");

for(i=0;i<n-1;i++) win. document. write("<td><center>"+delta[i]+"</center></td>");

win. document. write("<td>Такого параметра нет</td>");

win. document. write("</tr><tr><td width='50px'>X{i}</td>");

for(i=0;i<n;i++) win. document. write("<td><center>"+x[i]+"</center></td>");

win. document. write("</tr></table>");

}

</script>

</HEAD>

<BODY background="CultTextL. jpg">

Введите в окно для ввода размерность матрицы коэффициентов Вашей задачи (не рекомендуется вводить размерность, превышающую 50, в связи медленным выполнением JavaScript). <br>После ввода нажмите кнопку СОЗДАТЬ.

<center><input type="Text" id="rang_m" align="MIDDLE" size="2" maxlength="2">

<input type="Button" id="Keyname" value="Создать" align="MIDDLE" onClick="javascript:test(rang_m. value)">

<input type="Button" id="Calc" value="Расчет" align="MIDDLE" onClick="javascript:if(zapusk!=0)calc(rang_m. value)">

</center>

<a href="start. html" target="_top"><img src="5555.gif" align="right" width=52 height=22 border=0 alt="Вернуться на главную страницу"></a>

</BODY>

</HTML>

5.  Приложение 2(распечатка видов сайта в работе).

Главная страница.


Теория

Введение

Разностные уравнения

Примеры разностных уравнений

Задача Коши

Метод прогонки

Введение

Бурное развитие численных методов и становление новой науки - вычислительной математики - в последние два-три десятилетия связано с необходимостью решения крупных научно-технических проблем и появлением быстродействующих электронно-вычислительных машин.

Решение многих важных задач было бы невозможно без применения численных методов. Успехи

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

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

В чем заключается вычислительный эксперимент (ВЭ)?

Пусть требуется изучить некоторый физический процесс. Будем исследовать его методом ВЭ.

Первый этап - математическая формулировка задачи или выбор математической модели. Этому предшествует выбор физического приближения, т. е. того, какие факторы надо учесть, а какими можно пренебречь. Это - привилегия физиков. Что такое математическая модель? Указываются группа искомых физических величин и группа заданных величин: между ними есть связь, т. е. уравнения (алгебраические или дифференциальные), написание которых вместе со всей необходимой информацией (о коэффициентах уравнений, о начальных и краевых условиях) и есть выбор математической модели.

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

Второй этап - построение приближенного (численного) метода решения задачи. Третий этап - программирование для ЭВМ вычислительного алгоритма. Четвертый этап - проведение расчетов на ЭВМ.

Пятый этап - анализ полученных численных результатов и уточнение математической модели.

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

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

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

На втором этапе вычислительного эксперимента строится некоторый вычислительный алгоритм. Под вычислительным алгоритмом обычно понимают последовательность операций (логических и арифметических), при помощи которых находится решение задачи. Требуется, чтобы вычислительный алгоритм давал решение задачи с любой степенью точности e 0 за конечное число действий Q(e). Это общее требование.

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

Метод прогонки

Рассмотрим задачу:

Aiyi-1 – Ciyi + Biyi+1 = Fi, i = 1, 2, …, N-1, (5)

yo = А 1y1 + m1, yN = А 2yN-1 + m2.

причем Ai № 0, Bi № 0 для всех i = 1, 2, …, N-1.


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

(6)


с неопределенными коэффициентами αi и βi. Преобразуем выражение (6):


Подставим его в (5) и, используя соотношение (6), получим:


Это уравнение выполнено для любых уi, если


Отсюда получаем рекуррентную формулу для αi+1:

i = 1, 2, …, N-1, (7)


(предполагаем, что знаменатель в (7) отличен от нуля; условия, при которых это выполнено, выясним ниже) и рекуррентную формулу для вычисления βi+1:

i = 1, 2, …, N

Мы исходили из соотношения (6).

Если все коэффициенты αi и βi известны и известно значение уN (его легко вычислить из последнего уравнения, полученного путем использования соотношений и последовательной подстановки их в (5)), то, двигаясь справа налево (от i+1 к i), мы определим последовательно все уi. Уравнения для αi, βi- нелинейные, они связывают значения этих функций в двух соседних точках. Для αi, βi задача решается слева направо (от 1 до N) , для уi - в противоположном направлении (от N до 0).

Для каждой из функций α ,β и надо решать задачу Коши.

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


Чтобы найти начальные значения для этих функций, используем граничные условия. Так как формула (6) справедлива при i = 0, 1, ..., N - 1, то при i = 0 имеем

с другой стороны, yo = А 1y1 + m1,.

Поэтому


(9)

(10)

Таким образом, для функций αi и βi получим задачи Коши: для α -(7), (9), для β - (8), (10) (формулы прямой прогонки).

После того, как функции αi и βi найдены для всех i = 1, 2, ..., N, необходимо найти граничное значение уN. Оно определяется из решения системы уравнений


yN = А 2yN-1 + m2,


Откуда, если


(11)

Таким образом, для определения уi получаем задачу Коши (6), (11) (формулы обратной прогонки).


Изложенный здесь метод называется методом прогонки (правой прогонки). Соберем все формулы правой прогонки и запишем их в порядке использования:


i = 1, 2, …, N-1,


i = 1, 2, …, N-1,


i = N-1, N-2, …, 1, 0.

Существует еще левая прогонка. Она отличается от правой только тем, что начинаем вычисления с преобразования последнего уравнения системы (). Вычисляем коэффициенты, аналогичные αi и βi, двигаясь от N-1 до 0 (прямая прогонка). Затем осуществляем обратный ход прогонки (вычисление соответствующих уi, двигаясь от 0 до N).В остальном все вычисления те же.









Раздел СЮРПРИЗ.



Список использованного материала.

1.  Алекс Хоумер, Крис Умен “Dynamic HTML”,

Санкт-Петербург 1999г.

2.  Рик Дарнелл “JavaScript”, Санкт-Петербург 1998г.

3.  Воеводин, Кузнецов “Матрицы и вычисления”.

4.  Информация со следующих сайтов:

1). ribosome. genebee. msu. su/andrew/Projects/Works/Phischim/

literatureall. html (сайт с теорией по методам вычисления).

2). pix. (сайт с картинками).

3). www. ***** (сайт с бесплатными сценариями).