Математическое моделирование и численные методы в решении технических задач

Курсовой проект - Математика и статистика

Другие курсовые по предмету Математика и статистика

Содержание

 

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>