Объектно-ориентированное программирование на примере численных методов
Метод хорд при приближенном вычислении алгебраических и трансцендентных уравнений. Решение системных линейных уравнений методом Зейделя и дифференциальных уравнений методом Рунге-Кутта. Блок-схемы процедур mhord, myzend, mykutt. Описание интерфейса.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.01.2015 |
Размер файла | 412,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Аннотация
Курсовая работа по информатике на тему объектно-ориентированное программирование на примере численных методов выполнена по заданию №16: приближенное вычисление алгебраических и трансцендентных уравнений методом хорд, решение системы линейных уравнений методом Зейделя, решения дифференциальных уравнений методом Рунге-Кутта; выполнена студентом группы СРС-11 Самойловым Д.О., под руководством Артёмовой С.В.
Содержание
Введение
1. Постановка задачи
2. Математическое описание методов
2.1 Метод хорд при приближенном вычислении алгебраических и трансцендентных уравнений
2.2 Решение системных линейных уравнений методом Зейделя
2.3 Решение дифференциальных уравнений методом Рунге-Кутта
3. Блок-схема программы GLAV
3.1 Блок-схема процедуры mhord
3.2 Блок-схема процедуры myzend
3.3 Блок-схема процедуры mykutt
4. Описание стандартных модулей
5. Описание не стандартных модулей
6. Описание интерфейса
7. Численные примеры
Заключение
Список используемой литературы
Приложение
уравнение блок схема интерфейс
Введение
Студентам, а также инженерам часто требуется решать задачи, которые связаны с численными методами: решением алгебраических и трансцендентных уравнений, нахождение корня алгебраического уравнения, нахождение решений дифференциальных уравнений.
Подобные задачи решаются с помощью численных методов, разработанных для решения математических задач при помощи вычислительной техники на таких языках программирования, как: QBASIC, TURBO PASCAL, C++, DELPHI, VISUAL BASIC и д.р. пакеты программ. В частности, математические пакеты MathCAD, Maple, MathLab также дают возможность решения аналогичных задач.
Необходимо учитывать, что вычислительная техника не способна без погрешности записывать такие величины как и т.д., погрешность может появляться и при вычислении, округлении и других операциях.
В некоторых случаях при вычислении необходимо предварительно математически преобразовать или переписать в другом виде функции, это может существенно снизить погрешность или в ряде случаев без преобразования не сходятся решения.
С помощью вычислительной техники можно решить и иные инженерные задачи, но с определенной погрешностью.
1. Постановка задач
Цель данного курсового проекта - научиться использовать методы структурного программирования на примере численных методов, в частности написание нескольких модулей и связь их в одну общую программу.
1.1. Составить программу приближённого вычисления алгебраических и трансцендентных уравнений методом хорд 2х-3sin(2x)-1=0 и описать выше указанный метод, составить блок-схему, описать стандартные и не стандартные функции, применяемые в задаче, описать интерфейс и привести пример.
1.2. Составить программу для решения системы линейный уравнений методом Зейделя. Описать выше указанный метод, составить блок-схему, описать стандартные и не стандартные функции, применяемые в задаче, описать интерфейс и привести пример.
1.3. Составить программу для решения дифференциальных ур-й методом Рунге-Кутта.
шаг 0.1
Описать выше указанный метод, составить блок-схему, описать стандартные и не стандартные функции, а так же интерфейс задачи.
2. Математическое описание методов
2.1 Метод хорд
Идея метода состоит в том, что по двум точкам и построить прямую (то есть хорду, соединяющую две точки графика ) и взять в качестве следующего приближения абсциссу точки пересечения этой прямой с осью . Иными словами, приближённо заменить на этом шаге функцию её линейной интерполяцией, найденной по двум значениям и . (Линейной интерполяцией функции назовём такую линейную функцию , значения которой совпадают со значениями в двух фиксированных точках, в данном случае -- в точках и ).
В зависимости от того, лежат ли точки и по разные стороны от корня или же по одну и ту же сторону, получаем такие чертежи:
Построение последовательного приближения по методу хорд.
Итак, очередное последовательное приближение будет зависеть от двух предыдущих: . Найдём выражение для функции .
Интерполяционную линейную функцию будем искать как функцию с угловым коэффициентом, равным разностному отношению
построенному для отрезка между и , график которой проходит через точку :
Решая уравнение , находим
то есть
(1)
Заметим, что величина может рассматриваться как разностное приближение для производной в точке . Тем самым полученная формула (1) -- это разностный аналог итерационной формулы метода Ньютона.
Вычисление по формуле (1) гораздо предпочтительнее вычисления по другой полученной нами формуле
хотя эти две формулы математически тождественны, поскольку при использовании формулы (1) в случае вычислений с округлениями (например, на компьютере) достигается меньшая потеря значащих цифр.
Имеются две разновидности применения формулы (1).
Первая разновидность: вычисления ведутся непосредственно по формуле (1) при , начиная с двух приближений и , взятых, по возможности, поближе к корню . При этом не предполагается, что лежит между и (и что значения функции в точках и имеют разные знаки). При этом не гарантируется, что корень попадёт на отрезок между и на каком-либо следующем шаге (хотя это и не исключено). В таком случае затруднительно дать оценку погрешности, с которой приближает истинное значение корня , и поэтому довольствуются таким эмпирическим правилом: вычисления прекращают, когда будет выполнено неравенство , где-- желаемая точность нахождения корня. При этом полагают приближённое значение корня равным[1].
2.2 Решение систем линейных уравнений методом Зейделя
Для того чтобы применить метод Зейделя к решению системы линейных алгебраических уравнений
Ax = b
с квадратной невырожденной матрицей A, необходимо предварительно преобразовать эту систему к виду
x = Bx + c.
Здесь B - квадратная матрица с элементами bij (i, j = 1, 2, …, n), c - вектор-столбец с элементами cij (i = 1, 2, …, n).
В развернутой форме записи система имеет следующий вид:
x1 = b11x1 + b12x2 + b13x3 + … + b1nxn + c1
x2 = b21x1 + b22x2 + b23x3 + … + b2nxn + c2
. . . . . . . . . . . . . . . . .
xn = bn1x1 + bn2x2 + bn3x3 + … + bnnxn + cn
Вообще говоря, операция приведения системы к виду, удобному для итераций, не является простой и требует специальных знаний, а также существенного использования специфики системы.
Самый простой способ приведения системы к виду, удобному для итераций, состоит в следующем. Из первого уравнения системы выразим неизвестное x1:
x1 = a11-1 (b1 - a12x2 - a13x3 - … - a1nxn),
из второго уравнения - неизвестное x2:
x2 = a21-1 (b2 - a22x2 - a23x3 - … - a2nxn),
и т. д. В результате получим систему
x1 = b12x2 +b13x3 + … +b1,n-1xn-1 +b1nxn+ c1,
x2 = b21x1 +b23x3 + … +b2,n-1xn-1 +b2nxn+ c2,
x3 = b31x1 +b32x2 + … +b3,n-1xn-1 +b3nxn+ c3,
. . . . . . . . . . . . . . . . . .
xn = bn1x1 +bn2x2 + bn3x3 +… +bn,n-1xn-1 +cn,
в которой на главной диагонали матрицы B находятся нулевые элементы. Остальные элементы выражаются по формулам
bij = -aij / aii, ci = bi / aii (i, j = 1, 2, …, n, j ? i)
Конечно, для возможности выполнения указанного преобразования необходимо, чтобы диагональные элементы матрицы A были ненулевыми.
Введем нижнюю и верхнюю треугольные матрицы
0 0 0 … 0 0 b12 b13…b1n
b21 0 0 … 0 0 0 b23…b2n
B1 = b31 b32 0 … 0 ,B2 = 0 0 0 … b3n
. . . . . . . . . . . . .
bn1 bn2 bn3…0 0 0 0 … 0
Заметим, что B = B1 + B2 и поэтому решение x исходной системы удовлетворяет равенству
x = B1x + B2 x + c.
Выберем начальное приближение x(0) = [x1(0), x2(0), …, xn(0)]T. Подставляя его в правую часть равенства при верхней треугольной матрице B2 и вычисляя полученное выражение, находим первое приближение
x(1) = B1x(0) + B2x(1)
Подставляя приближение x(1), получим
x(2) = B1x(1) + B2x(2)
Продолжая этот процесс далее, получим последовательность x(0), x(1), …, x(n), … приближений к вычисляемых по формуле
x(k+1) = B1(k+1) + B2(k) + c
или в развернутой форме записи
x1(k+1) =b12x2(k) + b13x2(k) + … +b1nxn(k) + c1,
x2(k+1) =b21x1(k+1) +b23x3(k) + … +b2nxn(k) + c2,
x3(k+1) =b31x1(k+1) +b32x2(k+1) +… +b3nxn(k) + c3,
. . . . . . . . . . . . . . . . . . .
xn(k+1) =bn1x1(k+1) +bn2x2(k+1) +bn3x3(k+1) +… +cn.
Объединив приведение системы к виду, удобному для итераций и метод Зейделя в одну формулу, получим
xi(k+1) = xi(k) - aii-1(?j=1i-1 aijxj(k+1) + ?j=1n aijxi(k) - bi).
Тогда достаточным условием сходимоти метода Зейделя будет
?j=1, j?i n | aij | < | aii |
(условие доминрованния диагонали).
Метод Зейделя иногда называют также методом Гаусса-Зейделя, процессом Либмана, методом последовательных замещений. [2]
2.3 Метод Рунге-Кутта
Метод позволяет решать системы обыкновенных дифференциальных уравнений первого порядка следующего вида:
которые имеют решение:
где t - независимая переменная (например, время); X, Y и т.д. - искомые функции (зависимые от t переменные). Функции f, g и т.д. - заданы. Также предполагаются заданными и начальные условия, т.е. значения искомых функций в начальный момент.
Одно дифференциальное уравнение - частный случай системы с одним элементом. Поэтому, далее речь пойдет для определенности о системе уравнений. Метод Рунге-Кутта заключается в рекуррентном применении следующих формул:
Где
Метод может быть полезен и для решения дифференциальных уравнений высшего (второго и т.д.) порядка, т.к. они могут быть представлены системой дифференциальных уравнений первого порядка [2].
3. Блок-схема программы GLAV
3.1 Блок-схема модуля hord1 (процедура hord)
3.2 Блок-схема модуля zeid1 (процедура zeid)
3.3 Блок-схема модуля roonge1 (процедура roonge)
4. Описание стандартных функций
Используется процедура Clrscr стандартного модуля Crt [4]. Указанная процедура очищает экран и помещает курсор в его верхний левый угол. Действует процедура следующим образом: все символы заменяются на пробел с атрибутами, установленными в данный момент. Например, если цвет фона TextBackground не черный, то экран будет иметь цвет фона. Процедура выполняется в том окне, в котором она вызвана. Например, в случае
Window (1,1,60,20);
Clrscr;
Будет очищен прямоугольник 60*20, начинающийся в (1,1)
Следующие задействованные всеми создаваемыми модулями процедуры: Write (), Writeln (), Read (), Readln () стандартного модуля System [5]. Объявление этого модуля утилитой Uses не обязательно, он автоматически подключается программными средствами Pascal. Перечисленные операторы являются операторами ввода, вывода. Привлечение этих процедур открывает возможность многократного использования одной и той же программы для вычисления с различными исходными данными.
При выполнении оператора ввода Read() переменным присваиваются значения исходных данных.
Процедура Readln() выполняет процедуру Read(), после чего переходит на следующую строку. Readln() без параметров осуществляет переход на начало следующей строки без предварительного считывания.
С помощью процедур вывода Write() строится последовательность значений, которая является результатом выполнения программы. Параметр, заключенный в круглые скобки может содержать указания ширины поля и количества десятичных знаков. Выражения вывода могут быть следующих типов: char, integer, real, string, packet string или boolean. Процедура вывода, таким образом, позволяет выделить из всего набора вычисленных значений те, которые служат ответом к решавшейся при выполнении программой задаче.
Процедура Writeln() выполняет процедуру Write(), а затем осуществляет переход в начало следующей строки. Процедуры ввода и вывода часто применяют вместе. Например, для ввода трех чисел и вывода их суммы
Read (a,b,c);
х:= a+b+c;
Write(x);
Последней общей для всех модулей функцией является функция ReadKey, которая считывает символ с клавиатуры [5]. Она описана в стандартном модуле Crt. Возвращаемый тип данных - тип char. Функция ReadKey принимает значение считываемого символа, при этом символ не выводится на экран. Если до обращения к ReadKey значение KeyPressed было равно True, то считывание происходит незамедлительно. В противном случае программа ожидает ввода с клавиатуры. Для считывания кода, соответствующего специальным клавишам, к функции ReadKey необходимо обратиться два раза. (Под специальными, подразумеваются функциональные клавиши, клавиши управления курсором, клавиши, нажатые одновременно с Alt и т.д.). Первый раз функция ReadKey принимает значения #0, а во второй раз - значение расширенного кода, соответствующего данной специальной клавише. Значение #0 не может быть присвоено ReadKey никаким другим способом. Поэтому если ReadKey = #0, то следующее значение ReadKey обязательно должно трактоваться как расширенный код. Не смотря на то, что применение функции очень широко, однако чаще всего она используется для задержки программы при отладке. Пример применения функции
Ch: = ReadKey - возвращает считанный символ.
И, наконец, последняя, стандартная функция, используемая только в модуле myiter1. Это функция Abs() - возвращающая абсолютное значение аргумента. Она входит в состав стандартного модуля System. Возвращаемый тип данных тот же, что и у аргумента (real, integer).
Abs(x) - возвращает абсолютное значение х.
5. Описание нестандартных функций
Описание не стандартных функций сводится к описанию модуей.
Модуль hord1 содержит следующие функции и методы:
Funct(x:real):real;- принимает одно входное значение x, после чего функция вычисляет и возвращает значение исходной математической функции от данного x;
Hord.init данный метод инициализирует новый объект типа hord;
Hord.shag данный метод выполняет один математический шах по методу хорд в объекте hord;
Hord.poisk:real данная функция реализует цикл поиска корня линейного уравнения по методу хорд, после окончания поиска функция возвращает значение корня.
Модуль zeid1 - содержит одну процедуру (zeid). Которая выполняет решение системы линейных уравнений методом Зейделя.
Модуль roonge1 - содержит одну процедуру (roonge). Которая выполняет решение дифференциального уравнения методом Рунге-Кутта.
6. Описание интерфейса
Основная программа GLAV (использующая методы структурного программирования) работает следующим образом. Используя способ запроса, определяет дальнейший ход развития. При получении любого результата отличного от 1,2,3 вновь возвращается на начало программы. Тем самым, исключая возможность ошибочного ввода. При получении ответа соответствующего цифрам 1,2,3 передает управление одной из процедур описанных в не стандартных модулях пользователя. При этом выполнение главной программы практически заканчивается за исключением оператора выхода, который выполняется при вводе цифры 4. Управление передается соответственно одному из модулей (hord1, zeid1, roonge1). Каждый из перечисленных модулей по сути своей представляет отдельную программу, являющуюся составной частью другой. Это позволяет в зависимости от выбора пользователя выполнить тот или иной самостоятельный модуль, входящий в главную программу.
При выборе 1 управление передается модулю myzend(процедура zend) выполнение которого приводит к выходу из модуля в главную программу.
Аналогично построены и два других модуля входящих в программу GLAV.
Окно главной программы:
Результат процедуры hord:
Результат процедуы zeid:
Результат процедуры roonge:
7. Численные параметры
Все выше перечисленное в данной курсовой работе проиллюстрировано на конкретных примерах.
1 Задано алгебраическое уравнение, 2х-3sin(2x)-1=0 , имеющее явно отрицательное значение при , и положительное значение при . При заданной точности вычисления , при решении методом хорд, дает .
a |
b |
f(a) |
f(b) |
x |
f(x) |
|
1 |
2 |
-1 |
5,270407 |
1 |
-1,7278923 |
|
1,463504 |
2 |
1,288182 |
5,270407 |
1,4635038 |
1,2881816 |
|
1,289957 |
2 |
-0,01791 |
5,270407 |
1,2899565 |
-0,0179125 |
|
1,292362 |
2 |
-0,00087 |
5,270407 |
1,2923616 |
-0,0008707 |
|
1,292478 |
2 |
-4,2E-05 |
5,270407 |
1,2924785 |
-4,153E-05 |
|
1,292484 |
2 |
-2E-06 |
5,270407 |
1,292484 |
-1,979E-06 |
|
1,292484 |
2 |
-9,4E-08 |
5,270407 |
1,2924843 |
-9,427E-08 |
|
1,292484 |
2 |
-4,5E-09 |
5,270407 |
1,2924843 |
-4,491E-09 |
|
1,292484 |
2 |
-2,1E-10 |
5,270407 |
1,2924843 |
-2,14E-10 |
|
1,292484 |
2 |
-1E-11 |
5,270407 |
1,2924843 |
-1,02E-11 |
|
1,292484 |
2 |
-4,9E-13 |
5,270407 |
1,2924843 |
-4,863E-13 |
|
1,292484 |
2 |
-2,3E-14 |
5,270407 |
1,2924843 |
-2,309E-14 |
|
1,292484 |
2 |
-1,1E-15 |
5,270407 |
1,2924843 |
-1,11E-15 |
Видно из графика что корень уравнения приблизительно равен 1,3
2 Решение заданной системы
линейных уравнений осуществлялся с помощью Maple:
Заключение
В заключение хотелось бы отметить, что методы структурного программирования позволяют более мобильно и качественно проводить работу по модернизации программного обеспечения. Так достаточно усовершенствовать отдельный модуль откомпилировать его и главный модуль, для достижения, желаемого результата. Более того, текст главной программы более читаем, и занимает меньше места. Имеющиеся наработки в отдельных модулях можно использовать в других программах, не задумываясь об их работоспособности. Четко вычерченная структура позволяет яснее представить цели и задачи стоящие перед программистом. Не нужно все время перемещаться по тексту взад и вперед. В любой промежуток времени работы над очень большой программной появляется возможность сконцентрироваться на отдельном модуле. Открывается возможность совместной работы нескольких человек над одной громоздкой программной. Удачно разработанный модуль одного программиста становиться, доступен другим.
Все выше перечисленное позволяет сделать вывод. Что структурное программирование открывает не объятые просторы в развитии современной техники, и будущее, а вернее сказать уже настоящее именно за ним. Вместе с объектно-ориентированным программированием оно уже составляет авангард современной науки.
Список используемой литературы
1. Воробьев Г.Н., Бахвалов Н.С. «Численные методы». М.: Наука, 2009. 231 с.
2. Ефимов А.В., Демидович Б.П. «Линейная алгебра и основы математического анализа». М.: Наука, 1981. 386 с.
3. Бараненков Г.С., Демидович Б.П. «Задачи и упражнения по математическому анализу для ВТУЗОВ». М.: Наука, 2010. 184 с.
4. Абрамов С.А., Зима Е.В. «Начало программирования на языке Паскаль». М.: Наука, 1987. 8 с.
5. Епанешников А.Е., Красильников Ю.И. «Программирование в среде турбо Паскаль». М.: Центр МИФИ СП Диалог, 2008. 3-6 с.
Приложение:
Метод хорд:
unit myhord;
interface
uses crt;
type hord=object
a,b,c,cp,eps:real;
constructor init;
procedure shag;
function poisk:real;
end;
function funct(x:real):real;
implementation
function funct(x:real):real;
begin
funct:=2*x-3*sin(2*x)-1
end;
constructor hord.init;
begin
clrscr;
writeln(' Metod HORD');
write('Vvedite pogreshnost eps = ');
readln(eps);
write('Vvedite nachalo otrezka: a = ');
readln(a);
write('Vvedite konets otrezka: b = ');
readln(b);
cp:=b;
c:=b-(funct(b)*(a-b))/(funct(a)-funct(b));
end;
procedure hord.shag;
begin
if(funct(a)*funct(c)>0)
then a:=c
else b:=c;
cp:=c;
c:=b-(funct(b)*(a-b))/(funct(a)-funct(b));
end;
function hord.poisk:real;
begin
while (abs(c-cp)>eps) do
begin
if(funct(c)=0) then
begin
break;
end
else
begin
shag;
end;
end;
poisk:=c;
end;
end.
Метод Зейделя:
unit Dec_sys;
interface
uses crt;
type
matrix=array[1..10,1..10] of real;
vector=array[1..10] of real;
TDec_sys=object
n:integer;
procedure Zeidel(a:matrix;b:vector;x:vector;e:real);
procedure Dec_Zeidel;
constructor Init;
destructor Done;
end;
implementation
procedure TDec_sys.Zeidel(a:matrix; b:vector; x:vector; e:real);
var i,j,flag:integer;
s1, s2, s, v, m:real;
begin
flag:=1;
for i:=1 to n do
begin
s:= 0;
for j:=1 to n do
if j<>i then
s:=s+abs(a[i][j]);
if s>=abs(a[i][i]) then
flag:=0;
end;
if (flag=1) then
begin
repeat
begin
m:=0;
for i:=1 to n do
begin
s1:=0;
s2:=0;
for j:=1 to i do
s1:=s1+(a[i][j]*x[j]);
for j:=i+1 to n do
s2:=s2+a[i][j] * x[j];
v:=x[i];
x[i]:=x[i]-((1 / a[i][i])*(s1 + s2 - b[i]));
if (abs (v-x[i]) >m ) then
m:=abs(v - x[i]);
end;
end; until (m>=e );
writeln('ђҐиҐЁҐ бЁб⥬л:');
for i:=1 to n do
writeln('x',i,'=',x[i]:5:5);
end
else writeln('`Ёб⥬ Ґ б室Ёвбп!');
end;
procedure TDec_sys.Dec_Zeidel;
var eps:real;
a:matrix;
b,x:vector;
i,j:integer;
begin
clrscr;
writeln('ђҐиҐЁҐ бЁб⥬л га ўҐЁ©:');
writeln('a11ъx1+a12ъx2+a13ъx3=b1');
writeln('a21ъx1+a22ъx2+a23ъx3=b1');
writeln('a31ъx1+a32ъx2+a33ъx3=b1');
writeln;
write('‚ўҐ¤ЁвҐ в®з®бвм: '); readln(eps);
writeln;
writeln('‚ўҐ¤ЁвҐ н«Ґ¬Ґвл а биЁаҐ®© ¬ ваЁжл бЁб⥬л:');
for i:=1 to n do
begin
for j:=1 to n do
begin
write('a',i,j,'=');
readln(a[i][j]);
end;
end;
writeln;
writeln('‚ўҐ¤ЁвҐ н«Ґ¬Ґвл бв®«Ўж бў®Ў®¤ле з«Ґ®ў:');
for i:=1 to n do
begin
write('b',i,'=');
readln(b[i]);
end;
for i:=1 to n do
begin
x[i]:=0;
end;
writeln;
Zeidel(a,b,x,eps);
readln;
end;
constructor TDec_sys.Init;
begin
n:=3;
end;
destructor TDec_sys.Done;
begin
clrscr;
end;
end.
Метод Рунге-Кутта:
unit rk;
interface
uses crt;
type TEiler=object
x,y,h,b,dx1,dx2,dx3,dx4,ddx:real;
constructor init;
procedure shag;
procedure poisk;
end;
function proizv(f,g:real):real;
implementation
function proizv(f,g:real):real;
begin
proizv:=g*g-f*f;
end;
constructor TEiler.init;
begin
clrscr;
x:=0;
y:=0.5;
h:=0.1;
b:=1;
end;
procedure TEiler.shag;
begin
dx1:=proizv(x,y);
dx2:=proizv(x+h/2,y+h*dx1/2);
dx3:=proizv(x+h/2,y+h*dx2/2);
dx4:=proizv(x+h,y+h*dx3);
ddx:=(dx1+2*dx2+2*dx3+dx4)/6;
y:=y+ddx*h;
x:=x+h;
end;
procedure TEiler.poisk;
var f:text;
begin
assign(f,'1.txt');
rewrite(f);
while (x<=b) do
begin
writeln('x=',x:3:3,' ','y=',y:3:3);
writeln(f,x,' ',y);
shag;
end;
close(f);
end;
end.
Размещено на Allbest.ru
...Подобные документы
Метод половинного деления при приближенном вычислении алгебраических и трансцендентных выражений. Решение системы уравнений методом Крамера. Блок-схема программы Glav. Описание стандартных и нестандартных процедур и функций, интерфейса. Численные примеры.
курсовая работа [1,5 M], добавлен 29.07.2013Решение дифференциальных уравнений с использованием классических алгоритмов численных методов Эйлера и Рунге-Кутта 4-го порядка. Команды, используемые при решении обыкновенных дифференциальных уравнений в системе вычислений. Результат работы программы.
курсовая работа [226,6 K], добавлен 05.04.2013Сущность матричного метода. Разработка программы решения системы уравнений линейных алгебраических уравнений методом решения через обратную матрицу на языке программирования Delphi. Представление блок-схемы и графического интерфейса программного продукта.
курсовая работа [1,0 M], добавлен 27.09.2014Использование MS Excel для математических расчетов. Описание численных методов решения системы линейных алгебраических уравнений. Решение систем линейных алгебраических уравнений с методами Крамера и Зейделя и с помощью табличного процессора MS Excel.
курсовая работа [1,6 M], добавлен 14.02.2021Применение итерационных методов численного решения системы линейных алгебраических уравнений при вычислении на ЭВМ. Математические и алгоритмические основы решения задачи, метод Гаусса. Функциональные модели и блок-схемы, программная реализация решения.
курсовая работа [527,5 K], добавлен 25.01.2010Анализ предметной области объектно-ориентированного программирования. Языки Delphi, Object Pascal - объектно-ориентированная среда программирования. Основные алгоритмические решения. Решение дифференциального уравнения методом Рунге-Кутта в среде Excel.
курсовая работа [1,5 M], добавлен 02.04.2011Суть метода Рунге-Кутта и его свойства. Решение дифференциальных уравнений первого порядка. Вычислительный блок Given/Odesolve. Встроенные функции rkfixed, Rkadapt, Bulstoer. Решения линейных алгебраических уравнений в среде MathCad и Microsoft Excel.
курсовая работа [1,1 M], добавлен 02.06.2014Математическое описание исследуемых методов решения дифференциальных уравнений, содержание закона Зейделя. Принципы построения алгоритма программы, общее описание ее интерфейса. Стандартные и нестандартные модули, их отличительные свойства и значение.
курсовая работа [251,4 K], добавлен 22.01.2015Использование метода Зейделя для нахождения корней системы линейных алгебраических уравнений. Суть метода простых итераций. Оценка погрешности нормальной системы. Составление алгоритма, блок-схемы и кода программы. Тестовый пример и проверка в MathCad.
лабораторная работа [174,8 K], добавлен 02.10.2013Обзор существующих методов по решению нелинейных уравнений. Решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах. Разработка программы для решения нелинейных уравнений, блок-схемы алгоритма и листинг программы.
курсовая работа [435,8 K], добавлен 15.06.2013Численные методы решения задач. Решение алгебраических и трансцендентных уравнений. Уточнение корня по методу половинного деления. Решение систем линейных уравнений методом итераций. Методы решения дифференциальных уравнений. Решение транспортной задачи.
курсовая работа [149,7 K], добавлен 16.11.2008Объектно-ориентированное программирование: основная идея, сопровождение, модификация, термины и положения. Понятие объекта как логической единицы, правила (методы) обработки данных. Метод Гаусса для решения систем линейных алгебраических уравнений.
курсовая работа [125,1 K], добавлен 22.04.2009Проектирование приложения, позволяющего находить решение системы алгебраических линейных уравнений матричным методом. Выбор количества уравнений, заполнение значений коэффициентов системы уравнений и свободных членов, алгоритм решения линейных уравнений.
курсовая работа [939,4 K], добавлен 16.01.2014Математическая модель, описание теории, применяемой к задаче. Обсчет точек методом Рунге-Кутта, модифицированным методом Эйлера, схема и листинг программы. Решение дифференциальных уравнений и построение графиков, решение уравнений в среде Turbo Pascal.
курсовая работа [76,7 K], добавлен 18.11.2009Изучение численных методов решения нелинейных уравнений. Построение годографа АФЧХ, графиков АЧХ и ФЧХ с указанием частот. Практическое изучение численных методов интегрирования дифференциальных уравнений высокого порядка, метод Рунге-Кутта 5-го порядка.
курсовая работа [398,3 K], добавлен 16.06.2009Алгоритм решения систем линейных уравнений методом Гаусса, его этапы. Система уравнений для определения коэффициентов сплайна, представляющая собой частный случай систем линейных алгебраических уравнений. Программная реализация, тестовый пример.
курсовая работа [431,8 K], добавлен 15.06.2013Решение систем алгебраических линейных уравнений методом Крамера. Сущность метода прогонки. Программная реализация метода: блок-схема алгоритма, листинг программы. Проверка применимости данного способа решения для конкретной системы линейных уравнений.
курсовая работа [581,0 K], добавлен 15.06.2013Решение задачи Коши для дифференциального уравнения методом Рунге-Кутта и Адамса с автоматическим выбором шага и заданным шагом. Интерполирование табличной функции. Численное решение системы линейных алгебраических уравнений методами простой итерации.
методичка [35,8 K], добавлен 15.03.2009Преобразование матрицы системы линейных алгебраических уравнений (СЛАУ) с помощью алгоритма Гаусса. Решение задачи методом простой итерации. Создание блок-схемы и текста программы для решения СЛАУ, реализованной на языке программирования Turbo Pascal.
курсовая работа [1,2 M], добавлен 15.06.2013Итерационные методы решения нелинейных уравнений, системы линейных алгебраических уравнений (СЛАУ). Решение нелинейных уравнений методом интерполирования. Программная реализация итерационных методов решения СЛАУ. Практическое применение метода Эйлера.
курсовая работа [1,6 M], добавлен 20.01.2010