Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
27
Добавлен:
09.12.2013
Размер:
34.68 Кб
Скачать

Задание №6

Используя метод сеток, составить решение смешанной задачи для уравнения колебания струны . Решение

выполнить с шагом h=0.1.

С начальными условиями:

U(x,0)=f(x)=x*(2x-0.5)

Ut(x,0)=Ф(x)=cos(2x)

0<x<1

И краевыми условиями:

U(0,t)=Q(t)=t2

U(10,t)=G(t)=1.5

0<t<1

Решение:

Сначала подсчитаем значения в граничных узлах:

при k=0: , где

при i=0: , где

при i=10: , где .

Для k=1 значения можно посчитать по формуле:

, где

Дальнейший расчет производим по формуле:

Листинг 1. Файл: prog6.pas

Program struna_zad6;

const h=0.1;

x_a=0; x_b=1;

n=round((x_b-x_a)/h);

t_a=0; t_b=1;

var fout: text;

u: array [0..n, 0..n] of real;

i,k:integer;

x,t:real;

function f(x_:real):real;

begin

f:=x_*(2*x_+0.5);

end;

function p(x_:real):real;

begin

p:=cos(2*x_);

end;

function q(t_:real):real;

begin

q:=sqr(t_);

end;

function g(t_:real):real;

begin

g:=1.5;

end;

{----------------------------------------------}

begin

assign(fout, 'out.txt');

rewrite(fout);

{подсчет значений в граничных узлах}

{k=0}

for i:=0 to n do

begin

x:=x_a+i*h;

u[i,0]:=f(x);

end;

{i=0}

for k:=0 to n do

begin

t:=t_a+k*h;

u[0,k]:=q(t);

end;

{i=10}

for k:=0 to n do

begin

t:=t_a+k*h;

u[10,k]:=g(t);

end;

{подсчет значений функции в строках - k=1..9}

{для k=1 - посчитаем из начального условия}

for i:=1 to 9 do

begin

x:=x_a+i*h;

u[i,1]:=u[i,0]+p(x);

end;

{для k=2..10}

for k:=2 to 10 do

for i:=1 to 9 do u[i,k]:=u[i+1,k-1]+u[i-1,k-1]-u[i,k-2];

{вывод в файл}

writeln(fout, 'U[i,k]','i':40);

write(fout, ' ');

for i:=0 to 10 do write(fout, i:8); writeln(fout);

for k:=0 to 10 do

begin

if k=5 then write(fout,'k ')

else write(fout,' ');

write(fout, k:2);

for i:=0 to 10 do write(fout, u[i,k]:8:3);

writeln(fout);

end;

close(fout);

end.

Ответ:

Листинг 2 Файл: out.txt

U[i,k] i

0 1 2 3 4 5 6 7 8 9 10

0 0.000 0.070 0.180 0.330 0.520 0.750 1.020 1.330 1.680 2.070 1.500

1 0.010 1.050 1.101 1.155 1.217 1.290 1.382 1.500 1.651 1.843 1.500

2 0.040 1.041 2.025 1.988 1.926 1.849 1.770 1.703 1.663 1.081 1.500

3 0.090 1.015 1.928 2.796 2.620 2.406 2.170 1.933 1.133 1.320 1.500

4 0.160 0.977 1.786 2.560 3.276 2.941 2.568 1.600 1.590 1.552 1.500

k 5 0.250 0.930 1.609 2.266 2.881 3.438 2.371 2.226 2.019 1.770 1.500

6 0.360 0.882 1.410 1.930 2.428 2.311 3.096 2.790 2.406 1.967 1.500

7 0.490 0.840 1.203 1.573 1.360 2.086 2.730 3.276 2.738 2.135 1.500

8 0.640 0.811 1.003 0.633 1.230 1.779 2.266 2.678 3.005 2.271 1.500

9 0.810 0.803 0.241 0.660 1.052 1.410 1.727 1.995 2.211 2.370 1.500

10 1.000 0.240 0.460 0.660 0.840 1.000 1.140 1.260 1.360 1.440 1.500

Соседние файлы в папке Расчотка Лига Veg@SAR
  • #
    09.12.201313.21 Кб23Лига1.mcd
  • #
    09.12.201352.31 Кб22Лига2.mcd
  • #
    09.12.201319.56 Кб22Лига3.mcd
  • #
    09.12.201319.09 Кб23Лига4.mcd
  • #
    09.12.201351.95 Кб22Лига5.mcd
  • #
    09.12.201334.68 Кб27Лига6.docx