Численные методы в инженерных расчетах
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ь матрицы
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 Решение уравнения