Решение уравнений численными методами

End.

Begin

Begin

Var

Const

Uses

End.

Begin

Var

Const

Uses

С заданным числом циклов n.

3. Блок-схема алгоритма программы (рис.14)


1. Начало

2. Ввод объёма массива n

3. Ввод элементов массива xiоператором цикла

4. Обнуление суммы S

5. Организация циклас заданным числом повторений n (блок цикла изображён символом шестиугольника с параметрами цикла)

6. Вычисление суммы S оператором цикла

7. Вывод результата S

8. Конец

 

4. Текст программы

program summa;

printer;

n = 10;{объём массива, например 10}

i : integer;{переменная цикла - целое число}

S : real;{ искомая сумма }

x : array [1..n] of real; {массив действительных чисел}

writeln (‘Введите n’);

readln (n);

writeln (‘Введите значения x[i]’);

for i:= 1 to n do {ввод циклом}

read (x[i]);

S:=0;

for i:=1 to n do {вычисление циклом}

S:= S + x[i] ;

writeln ({lst,}‘Сумма элементов ряда S=’, S:5:2);

readln;

 

Ввод констант и простых переменных производится обычными операторами. Для ввода массивов необходим оператор цикла с заданным числом повторений, равным объёму цикла n. Вывод результата осуществляется в заданном формате (здесь 5:2), первая цифра которого определяет общее количество знаков, включая разделитель десятичной дроби, а вторая – количество знаков этой дроби после разделителя.

 

Для приближённых вычислений используется оператор цикла с заранее неизвестным числом циклов. Рассмотрим для примера программу приближённого вычисления функции квадратного корня с использованием структуры ЦИКЛ – ПОКА.

 

ЗАДАЧА 4. Составить программу приближённого вычисления квадратного корня из заданного числа по формуле Ньютона с заданной точностью.

 

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

Задано: действительное положительное число xи точность eps

Найти: приближённое значение функции y = sqr (x) c

заданной точностью eps по формуле Ньютона

y2= 0.5 ( y1 + x/y1 )

2.Формализация задачи

1. Ввести значения аргумента xи точностиeps

2. Вычислить начальное приближение y1 = x/2

3.Подставить y1 в формулу Ньютона и вычислить значение y2

4. Организовать цикл вычислений по формуле Ньютона, причём на каждом шаге проверять выполнение условия

| y2 – y1| > eps

5.Цикл вычислений продолжать до тех пор, пока это условие выполняется

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

7. вывести последнее значение y2 как результат.

3. Блок-схема алгоритма программы (рис.15)


4. Текст программы

program radix;

printer;

eps = 0.001;

x, y1 , y2 : real;

writelen (‘Введите x = ’) ;

readln (x);

y1 : = x/2; { начальное приближение }

y2 := 0.5* (y1 + x/y1 );

while { начало цикла ПОКА }

abs (y2 –y1) > eps do { условие точности }

y1:= y2;

y2:= 0.5*(y1 + x/y1);

end; { конец цикла ПОКА }

writeln ({lst,}’Квадратный корень y =’, y:5:2);

readln;

ЛЕКЦИЯ 8

 

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

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

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

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

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

 

Для примера рассмотрим методику численного решения уравнений.

Пусть задано уравнение F(x) = 0, где F(x) – произвольная непрерывная функция. Решение уравнения означает нахождение его корня, т.е. значения аргумента x = c, подстановка которых в уравнение обращает его в нуль: F(c) = 0. Численное решение уравнения предусматривает два этапа:

 

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

2.Организацию циклического процесса последовательной подстановки очередного вычисленного значения корня в уравнение до достижения заданной точности.

 

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

Если непрерывная функция F(x) принимает на концах отрезка [a,b] значения разных знаков, т.е. F(a)*F(b) < 0, то на отрезке [a,b] существует корень уравнения F(x) = 0, хотя бы один (рис.16).

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

 

 

Рис. 16 Рис. 17

 

Количество корней определяется по знаку производной функции F’(x). Если на заданном участке [a,b] производная F’(x) сохраняет знак, то функция монотонная и корень на заданном участке только один (рис. 17). Иногда начальное приближение можно определить заранее, исходя из физических соображений и анализа заданной функции. Если это невозможно, то в качестве начального приближения искомого корня уравнения выбирается один из концов отрезка

x0 = a, или x0 = b.

Чтобы определить правильность выбора начального приближения, можно исследовать графики функции или её производной. После выбора значений a и b следует подставить их в уравнение и проверить, действительно ли функция меняет знак. При этом вычисления могут быть приближёнными, т.к. здесь надо установить только знак функции, а величина не имеет значения.

 

Пример

Задано уравнение: 0,1 x2 – x*ln x = 0.