Математическое моделирование и численные методы в решении технических задач
Курсовой проект - Математика и статистика
Другие курсовые по предмету Математика и статистика
Содержание
1. Операции с файлами
. Решение иррациональных уравнений
.1 Метод хорд
.2 Метод половинного деления
. Вычисление определенного интеграла
.1 Метод парабол (Симпсона)
.2 Метод прямоугольников
.3 Метод трапеций
. Решение систем линейных алгебраических уравнений
.1 Метод Гаусса
.2 Метод Ньютона
.3 Метод Зейделя
. Решение дифференциальных уравнений
.1 Метод Эйлера
.2 Метод Рунге-Кутта
. Ряды Фурье
Список литературы
1.Операции с файлами
Задача заключается в том, что бы изменить элементы исходной таблицы (массива) и вывести полученный результат в таком же виде.
В данном случае мы каждый элемент таблицы умножили на 3.
Текст задачи:
c=3;t,p:text; a,b:array [1..10,1..10] of integer;,j,n,m,k:integer;(t,H:\Phoenix\1.txt);(p,H:\ Phoenix\2.txt);(t); i:=0;not eof(t) doi:=i+1; j:=0;not eoln(t) doj:=j+1; read(t,a[i,j]);; readln(t); end;:=i; m:=j;i:=1 to n dofor j:=1 to m do(a[i,j]:4); writeln; end; writeln;i:=1 to n do beginj:=1 to m do begin[i,j]:=a[i,j]*3;(b[i,j]:4); end;; end;(p);i:=1 to n do beginj:=1 to m do(p,b[i,j], );(p); end; close(p);.
Исходные данные:
23151203-4-8-91
Полученные данные:
693153609-12-24-273
Вывод:
Данный способ работы с файлами достаточно прост и удобен. В данном случае выполняется всего одно действие (умножение на 3). Данные файла преобразуются не вручную, а автоматически.
2.Решение иррациональных уравнений
.1Метод хорд
Теоретические сведения:
Будем искать корень функции . Выберем две начальные точки (;) и (;) и проведем через них прямую. Она пересечет ось абсцисс в точке (;0). Теперь найдем значение функции с абсциссой . Временно будем считать корнем на отрезке [;]. Пусть точка имеет абсцисcу и лежит на графике. Теперь вместо точек и мы возьмём точку и точку . Теперь с этими двумя точками проделаем ту же операцию и так далее, то есть будем получать две точки и и повторять операцию с ними. Отрезок, соединяющий последние 2 точки, пересекает ось абсцисс в точке, значение абсциссы которой можно приближённо считать корнем. Эти действия нужно повторять до тех пор, пока не получим значение корня с нужным приближением.
Рис. 1 Иллюстрация метода хорд
Рисунок иллюстрирует работу метода хорд. В данном случае вторая производная функции положительна, поэтому в качестве начального приближения выбрана точка хо = b. Как видно из рисунка, метод имеет очень быструю сходимость среди всех методов решения нелинейных уравнений: обычно заданная точность достигается за 2-3 итерации.
Блок схема
Текст задачи
var a,b,e,c,cc,ee:real;
k:integer;f(x: real):real;:=x*x-2*x;;:=1;:=4;:=0.001;:=c;:=(b*f(a)-a*f(b))/(f(a)-f(b));:=k+1;f(a)*f(c)<0 then b:=c else a:=c;:=abs((c-cc)/c);(k, ,c:0:5, ,e:0:5, ,f(c):0:5);e<=ee;;.
Результаты
а=1, b=4
kceF(c)11.333331.00000-0.8888921.600000.16667-0.6400031.777780.10000-0.3950641.882350.05556-0.2214551.939390.02941-0.1175461.969230.01515-0.0605971.984500.00769-0.0307781.992220.00388-0.0155091.996100.00195-0.00778101.998050.00097-0.00390
Вывод
Достоинство метода хорд: очень быстрая сходимость по сравнению с методом половинного деления к заданной точности.
2.2 Метод половинного деления
Теоретические сведения:
Метод половинного деления при нахождении корня уравнения f(x)=0 состоит в делении пополам отрезка [a; b], где находится корень. Затем анализируется изменение знака функции на половинных отрезках, и одна из границ отрезка [a; b] переносится в его середину. Переносится та граница, со стороны которой функция на половине отрезка знака не меняет. Далее процесс повторяется. Итерации прекращаются, когда длина интервала [a; b] становится меньше заданной погрешности нахождения корня.
Разделим отрезок [a, b] пополам точкой . Если (что практически наиболее вероятно), то возможны два случая: либо f(x) меняет знак на отрезке [a, c] (Рис. 2), либо на отрезке [c, b] (Рис. 3)
Рис. 2
Рис. 3
Блок схема
Текст задачи
var a,b,e,c,cc,ee:real;:integer;f(x: real):real;:=x*x-2*x;;:=1;:=4;:=0.001;:=c;:=(a+b)/2;:=k+1;f(a)*f(c)<0 then b:=c else a:=c;:=abs((c-cc)/c);(k, ,c:0:5, ,e:0:5, ,f(c):0:5, );e<=ee;;.
Результаты:
a=1;b=4
kcF(c)e12.500001.250001.0000021.75000-0.437500.4285732.125000.265630.1764741.93750-0.121090.0967752.031250.063480.0461561.98438-0.031010.0236272.007810.015690.0116781.99609-0.007800.0058792.001950.003910.00293101.99902-0.001950.00147112.000490.000980.00073
Вывод:
Недостаток метода половинного деления: медленная сходимость по сравнению с методом хорд к заданной точности. Достоинство: небольшой алгоритм вычисления значения функции.
3.Вычисление определенного интеграла
.1 Метод парабол
Теоретические сведения
Метод парабол - метод вычисления корней многочлена с комплексными коэффициентами, и позволяет найти все корни многочлена без предварительной информации о начальном приближении.
Пусть функция y = f(x) непрерывна на отрезке [a; b] и нам требуется вычислить определенный интеграл. Разобьем отрезок [a; b] на n элементарных отрезков длины 2h=(b-a)/n точками [x(2i-2);x(2i)]. Пусть точки x(2i-2) (i=1,2,3..n) являются серединами отрезков [x(2i-2);x(2i)] соответственно. В этом случае узлы определяются равенством x(i)=a+h*i. Суть метода Симпсона (парабол) заключается в том, что на каждом интервале [x(2i-2);x(2i)] подынтегральная функция приближается квадратичной параболой y=a(i)*x*x+b(i)*x+c(i), проходящей через точки .(x(2i-2);f(x(2i-2)), .(x(2i-1);f(x(2i-1)), .(x(2i);f(x(2i)). Отсюда и назв?/p>