Численные методы в инженерных расчетах

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ

1. РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

.1 Задание

.2 Решение уравнения методом половинного деления

.3 Метод секущих

.4 Метод Ньютона

1.5 Метод Matlab

2. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ

.1 Задание

.2 Решение СЛАУ

. ИНТЕРПОЛЯЦИЯ ФУНКЦИЙ

.1 Задание

.2 Интерполяция заданной функции

4. РЕШЕНИЕ СИСТЕМЫ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

4.1 Задание

4.2 Решение системы О.Д.У.

СПИСОК ЛИТЕРАТУРЫ

 

 

ВВЕДЕНИЕ

 

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

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

 

 

1. РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

 

.1 Задание

нелинейный алгебраический дифференциальный уравнение

Определить корни графически.

Уточнить один из корней с точностью до 10^(-6) методами:

а) методом половинного деления;

б) методом секущих;

в) методом Ньютона;

г) используя стандартную функцию Matlab.

При решении каждым из методов сосчитать количество итераций для достижения заданной точности.

Визуализировать итерационную последовательность.

Заданные уравнения:

 

2ex-2x-3=0

(x-2)cos(x)=1

П<=x<=2П

3x4+8x3+6x2-10=0

 

.2 Решение уравнения методом половинного деления

 

В методе половинного деления предполагается, что функция f(x) прерывна на отрезке [a,b] и на концах отрезка имеет разные знаки: f(a)f(b)<0.

Определяется середина отрезка: x0=(a+b)/2.

Если f(a)f(x0)0, то [a1,b1]=[x0,b].

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

Метод половинного деления медленный, но всегда сходится. На n шаге отрезок уменьшится в раз:

 

,

 

где - точность вычисления.

Программа в Matlab для уравнения 2ex-2x-3=0

Во - первых, вводим функцию в Matlab следующим образом:

 

function y=myf1(x)=2*exp(x)-2*x-3;

 

Теперь строим график данной функции:

 

x=0:0.001:3;=myf1(x);(x,y);grid

 

 

Рис.1. График функции 2ex-2x-3=0

 

Программа для определения корня уравнения

clc;

a=0.5;=1;=10^(-6);=b-a;=1;longl>=eps;=(a+b)/2;(m)=x;myf1(a)*myf1(x)<0=x;=x;=m+1;

l=b-a;

end

disp(число итераций длЯ уточнениЯ корнЯ);

disp(m);

disp(последовательное приближение)

disp(c);(c,*);

Получен результат: число итераций длЯ уточнениЯ корнЯ

последовательное приближение1 through 4

.75000000000000 0.87500000000000 0.81250000000000 0.843750000000005 through 8

.85937500000000 0.85156250000000 0.85546875000000 0.857421875000009 through 12

.85839843750000 0.85791015625000 0.85766601562500 0.8577880859375013 through 16

.85772705078125 0.85769653320313 0.85768127441406 0.8576736450195317 through 19

0.85767745971680 0.85767555236816 0.85767650604248

 

Рис.2. Итерационная последовательность

 

Программа в Matlab для уравнения (x-2)cos(x)=1.

Во - первых, вводим функцию в Matlab следующим образом:

 

function y=myf2(x)=(x-2).*cos(x)-1;

 

Теперь строим график данной функции:

 

x=-2*pi:0.001:2*pi;=myf2(x);(x,y);grid

 

Рис.3. График функции y= (x-2)cos(x)-1

 

Программа для определения корня уравнения

clc;

a=-6;=-4;=10^(-6);=b-a;=1;longl>=eps;=(a+b)/2;(m)=x;myf2(a)*myf2(x)<0=x;=x;=m+1;

l=b-a;

end

disp(число итераций длЯ уточнениЯ корнЯ);

disp(m);

disp(последовательное приближение)

disp(c);(c,*);

Получен результат:

число итераций длЯ уточнениЯ корнЯ

22

последовательное приближение1 through 4

.00000000000000 -4.50000000000000 -4.75000000000000 -4.625000000000005 through 8

.56250000000000 -4.53125000000000 -4.54687500000000 -4.554687500000009 through 12

.55859375000000 -4.56054687500000 -4.55957031250000 -4.5590820312500013 through 16

.55932617187500 -4.55944824218750 -4.55938720703125 -4.5593566894531317 through 20

.55934143066406 -4.55933380126953 -4.55933761596680 -4.5593395233154321

-4.55933856964111

 

Рис.4. Итерационная последовательность

 

Программа в Matlab для уравнения 3x4+8x3+6x2-10=0

Во - первых, вводим функцию в Matlab следующим образом:

 

function y=myf3(x)=3*x.^4+8*x.^3+6*x.^2-10;

 

Теперь строим график данной функции:

x=1:0.001:3;=myf3(x);(x,y);grid

 

 

Рис.5. График функции y=3x4+8x3+6x2-10

 

Программа для определения корня уравнения

clc;

a=0.5;=1;=10^(-6);=b-a;=1;longl>=eps;=(a+b)/2;(m)=x;myf3(a)*myf3(x)<0=x;=x;=m+1;

l=b-a;

end

disp(число итераций длЯ уточнениЯ корнЯ);

disp(m);

disp(последовательное приближение)

disp(c);(c,*);

Получен результат:

число итераций длЯ уточнениЯ корнЯ

20

последовательное приближение1 through 4

.75000000000000 0.87500000000000 0.81250000000000 0.843750000000005 through 8

.82812500000000 0.82031250000000 0.82421875000000 0.826171875000009 through 12

.82519531250000 0.82568359375000 0.82592773437500 0.8260498046875013 through 16

.82598876953125 0.82601928710938 0.82603454589844 0.8260421752929717 through 19

.82603836059570 0.82604026794434 0.82604122161865

 

 

Рис.6. Итерационная последовательность

 

1.3 Метод секущих

 

В методе секущих предполагается, что функция f(x) прерывна на отрезке [a,b] и на концах отрезка имеет разные зна?/p>