Решение краевой задачи на графе методом Ритца
Модельная задача уравнения колебаний струны и деформации системы из трех струн. Вариационные методы решения: экстремум функционала, пробные функции, метод Ритца. Подпространства сплайнов и тестирование программы решения системы алгебраических уравнений.
Рубрика | Математика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 29.06.2012 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
w[i]:=0;
end;
i:=n[1]-1;
c[i]:=c[i]/b[i];
d[i]:=d[i]/b[i];
e[i]:=e[i]/b[i];
y[i]:=y[i]/b[i];
b[i]:=1;
b[i+1]:=b[i+1]-c[i]*a[i];
c[i+1]:=c[i+1]-d[i]*a[i];
e[i+1]:=e[i+1]-e[i]*a[i];
y[i+1]:=y[i+1]-y[i]*a[i];
a[i]:=0;
a[i+1]:=a[i+1]-c[i]*v[i];
b[i+2]:=b[i+2]-d[i]*v[i];
e[i+2]:=e[i+2]-e[i]*v[i];
y[i+2]:=y[i+2]-y[i]*v[i];
v[i]:=0;
w[i+1]:=w[i+1]-c[i]*w[i];
w[i+2]:=w[i+2]-d[i]*w[i];
b[n[1]+n[2]]:=b[n[1]+n[2]]-e[i]*w[i];
y[n[1]+n[2]]:=y[n[1]+n[2]]-y[i]*w[i];
w[i]:=0;
for i:=n[1] to n[1]+n[2]-3 do
begin
c[i]:=c[i]/b[i];
e[i]:=e[i]/b[i];
y[i]:=y[i]/b[i];
b[i]:=1;
b[i+1]:=b[i+1]-c[i]*a[i];
e[i+1]:=e[i+1]-e[i]*a[i];
y[i+1]:=y[i+1]-y[i]*a[i];
a[i]:=0;
w[i+1]:=w[i+1]-c[i]*w[i];
b[n[1]+n[2]]:=b[n[1]+n[2]]-e[i]*w[i];
y[n[1]+n[2]]:=y[n[1]+n[2]]-y[i]*w[i];
w[i]:=0;
end;
i:=n[1]+n[2]-2;
c[i]:=c[i]/b[i];
e[i]:=e[i]/b[i];
y[i]:=y[i]/b[i];
b[i]:=1;
b[i+1]:=b[i+1]-c[i]*a[i];
c[i+1]:=e[i+1]-e[i]*a[i];
y[i+1]:=y[i+1]-y[i]*a[i];
a[i]:=0;
a[i+1]:=a[i+1]-b[i+1]*w[i];
b[n[1]+n[2]]:=b[n[1]+n[2]]-c[i]*w[i];
y[n[1]+n[2]]:=y[n[1]+n[2]]-y[i]*w[i];
w[i]:=0;
for i:=n[1]+n[2]-1 to n[1]+n[2]+n[3]-3 do
begin
c[i]:=c[i]/b[i];
y[i]:=y[i]/b[i];
b[i]:=1;
b[i+1]:=b[i+1]-c[i]*a[i];
y[i+1]:=y[i+1]-y[i]*a[i];
a[i]:=0;
end;
y[nn]:=y[nn]/b[nn];
b[nn]:=1;
end;
procedure obratno;
var
i: integer;
begin
for i:=1 to nn do cf[i]:=0;
cf[nn]:=y[nn];
for i:=nn-1 downto n[1]+n[2]-2 do cf[i]:=y[i]-c[i]*cf[i+1];
for i:=n[1]+n[2]-3 downto n[1] do cf[i]:=y[i]-cf[n[1]+n[2]]*e[i]-c[i]*cf[i+1];
for i:=n[1]-1 downto 1 do cf[i]:=y[i]-c[i]*cf[i+1]-cf[n[1]+n[2]]*e[i]-cf[n[1]+1]*d[i];
end;
procedure print_vect(vectors: string);
var
i, nn: integer;
vec: textfile;
fname: string;
begin
nn:=n[1]+n[2]+n[3]-2;
fname:=vectors+'.txt';
assignfile(vec,fname);
rewrite(vec);
writeln(vec,'a:');
for i:=1 to nn-1 do writeln(vec,a[i]:7:4);
writeln(vec,'b:');
for i:=1 to nn do writeln(vec,b[i]:7:4);
writeln(vec,'c:');
for i:=1 to nn-1 do writeln(vec,c[i]:7:4);
writeln(vec,'d:');
for i:=1 to n[1]-1 do writeln(vec,d[i]:7:4);
writeln(vec,'e:');
for i:=1 to n[1]+n[2]-2 do writeln(vec,e[i]:7:4);
writeln(vec,'v:');
for i:=1 to n[1]-1 do writeln(vec,v[i]:7:4);
writeln(vec,'w:');
for i:=1 to n[1]+n[2]-2 do writeln(vec,w[i]:7:4);
writeln(vec,'y:');
for i:=1 to n[1]+n[2]+n[3]-2 do writeln(vec,y[i]:7:4);
writeln(vec,'cf:');
for i:=1 to n[1]+n[2]+n[3]-2 do writeln(vec,cf[i]:7:4);
closefile(vec);
end;
begin // resh_sist
nn:=n[1]+n[2]+n[3]-2;
b[1]:=matr[1,1];
c[1]:=matr[1,2];
b[nn]:=matr[nn,nn];
a[nn-1]:=matr[nn,nn-1];
for i:=2 to nn-1 do
for j:=(i-1) to (i+1) do
begin
if i=j then b[i]:=matr[i,j]
else
if i=(j-1) then c[i]:=matr[i,j]
else if j=(i-1) then a[i-1]:=matr[i,j];
end;
for i:=1 to n[1] do d[i]:=0;
d[1]:=matr[1,n[1]+1];
for i:=1 to n[1]+n[2]-1 do e[i]:=0;
e[1]:=matr[1,n[1]+n[2]];
for i:=1 to n[1] do v[i]:=0;
v[1]:=matr[n[1]+1,1];
for i:=1 to n[1]+n[2]-1 do w[i]:=0;
w[1]:=matr[n[1]+n[2],1];
for i:=1 to nn do y[i]:=pr_ch[i];
print_vect('vec1');
gauss;
print_vect('vec2');
obratno;
print_vect('vec3');
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i, j: integer;
r: real;
m: real;
q: integer;
begin
for i:=0 to n[1] do series1.AddXY(x1[i],u_toch(x1[i],1));
for i:=0 to n[2] do series3.AddXY(x2[i],u_toch(x2[i],2));
for i:=0 to n[3] do series5.AddXY(x3[i],u_toch(x3[i],3));
q:=2;
m:=h[1]/q;
for i:=0 to (n[1]-1)*q+1 do
begin
r:=cf[1]*splain(x1[i],0,1);
for j:=1 to n[1]-1 do r:=r+cf[j+1]*splain(x1[0]+m*i,j,1);
series2.AddXY(x1[0]+m*i,r);
end;
series2.AddXY(x1[n[1]],u_toch(l[1],1));
m:=h[2]/q;
for i:=0 to (n[2]-1)*q+1 do
begin
r:=cf[1]*splain(x2[i],0,2);
for j:=1 to n[2]-1 do r:=r+cf[j+n[1]]*splain(x2[0]+m*i,j,2);
series4.AddXY(x2[0]+m*i,r);
end;
series4.AddXY(x2[n[2]],u_toch(l[2],2));
m:=h[3]/q;
for i:=0 to (n[3]-1)*q+1 do
begin
r:=cf[1]*splain(x3[i],0,3);
for j:=1 to n[3]-1 do r:=r+cf[j+n[1]+n[2]-1]*splain(x3[0]+m*i,j,3);
series6.AddXY(x3[0]+m*i,r);
end;
series6.AddXY(x3[n[3]],u_toch(l[3],3));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
sost_sist;
resh_sist;
showmessage('ok');
end;
end.
Размещено на Allbest.ru
Подобные документы
Понятия и термины вариационного исчисления. Понятие функционала, его первой вариации. Задачи, приводящие к экстремуму функционала, условия его минимума. Прямые методы вариационного исчисления. Практическое применение метода Ритца для решения задач.
курсовая работа [1,3 M], добавлен 08.04.2015Изучение прямых методов решения вариационных и краевых задач математического анализа. Основные идеи методов Ритца и Галеркина для нахождения приближенного обобщенного решения задачи минимизации функционала. Особенности, сходство и отличие данных методов.
презентация [187,9 K], добавлен 30.10.2013Метод разделения переменных в задаче Штурма-Лиувилля. Единственность решения смешанной краевой задачи, реализуемая методом априорных оценок. Постановка и решение смешанной краевой задачи для нелокального волнового уравнения с дробной производной.
курсовая работа [1003,8 K], добавлен 29.11.2014Последовательность решения линейной краевой задачи. Особенности метода прогонки. Алгоритм метода конечных разностей: построение сетки в заданной области, замена дифференциального оператора. Решение СЛАУ методом Гаусса, конечно-разностные уравнения.
контрольная работа [366,5 K], добавлен 28.07.2013Решение краевой задачи. Методы конечно-разностных, центрально-разностных отношений и метод прогонки. Приближенное решение линейного дифференциального уравнения второго порядка с помощью методов Галеркина, Ритца и коллокации, сравнение результов.
курсовая работа [596,2 K], добавлен 27.04.2011Способы решения системы линейных алгебраических уравнений: по правилу Крамера, методом матричным и Жордана-Гаусса. Анализ решения задачи методом искусственного базиса. Характеристика основной матрицы, составленной из коэффициентов системы при переменных.
контрольная работа [951,8 K], добавлен 16.02.2012Описание метода сведения краевой задачи к задаче Коши. Решение системы из двух уравнений с четырьмя неизвестными. Метод Рунге-Кутта. Расчет максимальной погрешности и выполнение проверки точности. Метод конечных разностей. Описание полученных результатов.
курсовая работа [245,2 K], добавлен 10.07.2012Решение дифференциальных уравнений в частных производных. Метод минимальных невязок, минимальных поправок, скорейшего спуска, сопряженных градиентов. Алгоритмы и блок-схемы решения. Руководство пользователя программы. Решение системы с матрицей.
курсовая работа [380,3 K], добавлен 21.01.2014Решение линейной краевой задачи методом конечных разностей (методом сеток). Замена области непрерывного изменения аргументов дискретным множеством узлов (сеток). Сведение линейной краевой задачи к системе линейных алгебраических уравнений (сеточных).
лекция [463,7 K], добавлен 28.06.2009Понятие и специфические черты системы линейных алгебраических уравнений. Механизм и этапы решения системы линейных алгебраических уравнений. Сущность метода исключения Гаусса, примеры решения СЛАУ данным методом. Преимущества и недостатки метода Гаусса.
контрольная работа [397,2 K], добавлен 13.12.2010