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

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

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

ь матрицы

a1=inv(a); %обратная матрица

x=a\b%решение системы методом Matlab

masa=abs(a);=max(sum(masa)); % норма 11=abs(a1);

n11=max(sum(masa1)); %норма 1 для обратной матрицы

m1=n1*n11=max(sum(masa)) % норма 222=max(sum(masa1)); %норма 2для обратной матрицы

m2=n2*n22;=a*a;=eig(r1);=max(abs(la1));=sqrt(A1); % норма 3=a1*a1;=eig(r2);2=max(abs(la2));

n33=sqrt(A2); %норма 3 для обратной матрицы

m3=n3*n33=rand(5,5);=a+Er;=rand(5,1);=b+Erb;=aa\bb=max(abs(x-X))=absp/(max(abs(x)))

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

a =

4 8 6 4

2 -8 5 4

-5 1 5 10

3 1 -7 5

10 7 -4 -3

b =

 

 

 

 

 

x =

-0.22786051834609

.11319065451120

.77419480408262

.24929348291513

.38177614113214=

.45727031382594=

=

.26291163081868=

.24060047867289

.04637852582081

.79476339451552

.26209671096621

.39532812354543=

.06681212869039=

.08629885958684

Функция Зейделя:[z1,z2]=zeide1(a,b,eps) % векторное присвоение

a=[-1 4 8 6 4; -5 2 -8 5 4;4 -5 1 5 10; -4 3 1 -7 5;5 10 7 -4 -3]

b=[6; -5; 3; 5; 3]

eps=10^(-6);=size(a,1) % возвращает число строк массива А=a*a=a*b % приведение системы к нормальному виду

for i=1:N % размерность задачи(i)=D(i)/C(i,i);

end

% D11=D1; % D11-начальное приближение (столбец правой части)

d1=D1;i=1:Nj=1:N

if i==j % проверка на равенство

C1(i,j)=0;(i,j)=-C(i,j)/C(i,i);

end

% решение системы методом Зейделя

R1=d1;=0;k==0i=1:N=C1(i,1:N); % вырезка=dot(v,d1); % скалярное произведение

d1(i)=A+D1(i);=d1;=max(abs(R2-R1));S<eps=d1; z2=S;=k+1;=R2;

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

a =

4 8 6 4

2 -8 5 4

-5 1 5 10

3 1 -7 5

10 7 -4 -3

b =

 

 

 

 

 

N =

5=

4 67 -3 -19

154 84 -52 -41

84 179 -22 -6

-52 -22 151 71

-41 -6 71 166=

 

 

 

 

=1 through 4

-0.22784165101666 -0.11317732900043 0.77418152802107 -0.24929480082327

Column 5

.38178538703810

 

 

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

 

.1 Задание

 

Из первой части курсовой работы взять функцию, которая имеет больше изгибов. На промежутке (-4?;4?) взять равномерную сетку из десяти значений(x). Вычислить значения функции в этих точках. Сформировать сетку c шагом 1/100.

Выполнить интерполяцию 3 методами.

 

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

 

Часто для восстановления зависимостей; сравнения значений двух или более функций, заданных на разной сетке; подготовки качественных графических материалов требуется построить интерполирующую функцию f(xi)=yi, которую называют интерполянтой. Интерполянту ищут в виде многочлена:

 

 

где -неопределённые коэффициенты.

Более удобным является представление полинома в виде полинома Лагранжа степени n:

Формула Лагранжа имеет вид:

 

.

 

 

Формат функции в Matlab:

=interp(x,y,xi,метод).

 

Метод принимает значения:

;

linear;

spline;

 

При заданной сеточной функции в узлах x принимаются значения, определённые компонентами y. Функция interp осуществляет интерполяцию функции в точке с координатой xi.

Принципы этих методов можно проследить при решении конкретной задачи. Для интерполяции по формуле Лагранжа используются функции polyfit и polyval.

Программа в Matlab:

=-4*pi:0.01:4*pi;

yi=(xi-2).*cos(xi)-1;(xi,yi,r); grid;=[-15 15 -20 20];(v);on;=-4*pi:8*pi/10:4*pi;=(x-2).*cos(x)-1;=interp1(x,y,xi,nearest);(x,y,ob,xi,yi,y)=interp1(x,y,xi,linear)(x,y,ob,xi,yi,m)=interp1(x,y,xi,spline)(x,y,ob,xi,yi,g)=polyfit(x,y,11)=polyval(p,xi)(x,y,ob,xi,f,b)off

 

Рис.13. Сетка из десяти значений и интерполяция методом nearest

 

 

Рис.14. Интерполяция методом linear

 

Рис.15. Интерполяция методом spline

 

Рис.16 Полином Лагранжа

 

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

 

.1 Задание

 

Привести уравнения к нормальной системе.

Решить систему методом Рунге-Кутты.

 

Y/V- Y///(Y//+1)-sin (t)Y/+YY/=3(0)=0

Y/0)=0

Y//(0)=1

Y///(0)=-1

 

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

 

Обыкновенным дифференциальным уравнением называется уравнение, связывающее одну независимую переменную x, искомую функцию y(x) и её производные до n порядка включительно:

 

.

 

Система О.Д.У. относительно n неизвестных функций y1(x), y2(x),… , yn(x) yназывается нормальной, если каждое уравнение, входящее в систему, содержит в левой части производную первого порядка от соответствующей искомой функции, а правая часть является функцией от независимой переменной x и n искомых функций

Одним из методов решения системы О.Д.У. является метод Рунге-Кутты. Вычислительная схема МРК для 4-го порядка имеет вид:

 

 

Приведение системы к нормальному виду

 

Y/V- Y///(Y//+1)-sin (t)Y/+YY/=3

Y(0)=0/0)=0//(0)=1///(0)=-1

 

;

x4=y///=x3/

/ = x2/=x3/= x4/=-x4(x3+1)-sin(t)x2+x1x2-3

 

Программа в Matlab:

 

function u=difur(t,x)=[x(2);x(3);x(4);-x(4)*(x(3)+1)-sin(t)*x(2)+x(2)*x(3)-3];;

[t,X]=ode45(difur,[0,pi],[0,0,1,-1]);=X(:,1);(311)(t,y)=X(:,2);(312)(t,y1)=X(:,3);(313)(t,y2)

 

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

 

Рис.17 Решение уравнения