Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Национальный технический университет Украины
«Киевский политехнический институт»
Лабораторная работа №3-7
по дисциплине «Алгоритмы и методы вычислений»
Выполнил ст. 2 к. ФИВТ,
гр. ИВ-73, Шевченко А.
Варіант № 22
Задание
Цель работы: используя метод конечных разностей составить решения для обычного диференциального уравнения с точностью до 0.001 и шагом 0.1.
Исходный код
Теоретические ведомости: Отрезок [1,3; 1,6] разобъём на равные части с шагом h=0,1, ки с абсциссами Х0=1,3; Х1=1,4; Х2=1,5; Х3=1,6. Точки Х0 і Х3 - концевые. Данное уравнение во внутренних точках заменим конечно-разностним уравнением.
Используем формулы:
После алгебраических преобразований:
Алгоритм.
Программа:
uses crt;
const s=4;
type a=array[1..s,1..s] of real;
var
a1,a2:a;
x,b:array[1..s] of real; i,j,m,n:byte; dx,dxx:real;
function det(a2:a):real;
var y,z:a; i,j,k:byte;
sum,d:real;
begin
for i:=1 to s do begin
y[i,1]:=a2[i,1]; z[i,i]:=1;
end;
for j:=1 to s do z[1,j]:=a2[1,j]/y[1,1];
for i:=2 to s do
for j:=2 to s do begin
if (j>=2) and (i>=j) then begin
sum:=0;
for k:=1 to j-1 do sum:=sum+y[i,k]*z[k,j];
y[i,j]:=a2[i,j]-sum;
end;
if (i>=2) and (j>=i) then begin
sum:=0;
for k:=1 to i-1 do sum:=sum+y[i,k]*z[k,j];
if y[i,i]<>0 then z[i,j]:=(a2[i,j]-sum)/y[i,i];
end;
end;
d:=1;
for i:=1 to s do d:=d*y[i,i];
det:=d;
end;
begin
clrscr;
writeln('a1');
for i:=1 to s do begin
write('-->');for j:=1 to s-1 do read(a1[i,j]);
readln(a1[i,s]); end;
writeln('b');
for i:=1 to s do read(b[i]);
for n:=1 to s do
for m:=1 to s do a2[n,m]:=a1[n,m];
dx:=det(a2);
for j:=1 to s do begin
for n:=1 to s do
for m:=1 to s do a2[n,m]:=a1[n,m];
for i:=1 to s do a2[i,j]:=b[i];
dxx:=det(a2);
x[j]:=dxx/dx;
write('x',j,'=',x[j]:8:3);
end;
readkey;
end.
Вывод:
В ходе данной лабораторной работы разработал програмное обеспечение для решения диференциальных уравнений методом конечных разностей, смысл которого в том. Чтобы представить значение функции в данной точке как некоторую совокупность (неполную сумму) значений на концах функции в околе этой точки.
EMBED Equation.3