Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/41: Рейтинг темы: голосов - 41, средняя оценка - 4.80
7 / 7 / 5
Регистрация: 04.11.2010
Сообщений: 25

Краевая задача (метод пристрелки)

15.12.2011, 05:23. Показов 7943. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На отрезке [a,b] найти решение краевой задачи для заданного ОДУ в 10 промежуточных точках

https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{d}^{2}y}{{dx}^{2}}=f(x,y,y') при граничных условиях y(a)=A, y(b)=B

https://www.cyberforum.ru/cgi-bin/latex.cgi?f(x,y,y')={e}^{x}y+cosx
граничные условия: a=1, b=2, y(a)=0, y(b)=0
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.12.2011, 05:23
Ответы с готовыми решениями:

Метод пристрелки
Условия прикрепил ниже в фотографиях. Попробовал сделать сам, но не получается выполнить условия равенства нуля. Помогите проверить...

Краевая задача для ОДУ
Помогите решить задачку методом прогонки.

Краевая задача разностным методом
Поставлена краевая задача: U''+p(t)U'+g(t)U=f(t), t\in \left\{\begin{matrix} & {k}_{1}u(a)+{k}_{2}u'(a)=A \\ &...

2
7 / 7 / 5
Регистрация: 04.11.2010
Сообщений: 25
19.12.2011, 20:09  [ТС]
Лучший ответ Сообщение было отмечено x_AlexXxander_x как решение

Решение

Вот мои наработки, компилируется, но не запускается =/

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Program Krajova_zadacha;
uses crt;
label Start, Quit;
const
h=0.1;
a=1;
b=2;
ya=0;
yb=0;
e=0.000001;
n=10;
var
x:array [1..11] of extended;
y:array [1..11] of extended;
k0,k1,k2,k3:real;
i:integer;
Function f(x,y:real):real;
begin
f:=exp(x)*y+cos(x);
end;
begin
clrscr;
i:=1;
x[1]:=a;
y[1]:=ya;
Start:
x[i]:=x[1];
y[i]:=y[1];
repeat
k0:=h*f(x[i],y[i]);
k1:=h*f(x[i]+h/2,y[i]+k0/2);
k2:=h*f(x[i]+h/2,y[i]+k1/2);
k3:=h*f(x[i]+h,y[i]+k2);
y[i]:=y[i]+(k0+2*k1+2*k2+k3)/6;
x[i]:=x[i]+h;
i:=i+1;
until x[i]>b;
if ((b-e)<y[i]) and (y[i]<(b+e)) then goto Quit else
repeat
k0:=h*f(x[i],y[i]);
k1:=h*f(x[i]+h/2,y[i]+k0/2);
k2:=h*f(x[i]+h/2,y[i]+k1/2);
k3:=h*f(x[i]+h,y[i]+k2);
y[i]:=y[i]-(k0+2*k1+2*k2+k3)/6;
x[i]:=x[i]-h;
i:=i-1;
until x[i]>a;
if ((a-e)<y[i]) and (y[i]<(a+e)) then goto Quit else goto Start;
Quit:
Writeln('|', ' i', ' |', '  x   ',       '|', '    y', '   |');
Writeln('---------------------');
for i:=1 to n do
Writeln('|', i:2, ' |', x[i]:5:2, ' |', y[i]:7:4, ' |');
readkey;
end.
Добавлено через 17 часов 37 минут
Вот немного код подправил, но все равно ошибка 201...

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Program Krajova_zadacha;
uses crt;
label Start, Quit;
const
a=1;
b=2;
ya=0;
yb=0;
e=0.000001;
n=10;
var
x:array [1..10] of real;
y:array [1..10] of real;
h,k0,k1,k2,k3:real;
i:integer;
Function f(x,y:real):real;
begin
f:=exp(x)*y+cos(x);
end;
begin
clrscr;
h:=(b-a)/n;
i:=1;
x[i]:=a;
y[i]:=ya;
Start:
x[1]:=x[i];
y[1]:=y[i];
repeat
k0:=h*f(x[i],y[i]);
k1:=h*f(x[i]+h/2,y[i]+k0/2);
k2:=h*f(x[i]+h/2,y[i]+k1/2);
k3:=h*f(x[i]+h,y[i]+k2);
y[i]:=y[i]+(k0+2*k1+2*k2+k3)/6;
x[i]:=x[i]+h;
i:=i+1;
until x[i]>b;
if ((yb-e)<y[i]) and (y[i]<(yb+e)) then goto Quit else
repeat
k0:=h*f(x[i],y[i]);
k1:=h*f(x[i]+h/2,y[i]+k0/2);
k2:=h*f(x[i]+h/2,y[i]+k1/2);
k3:=h*f(x[i]+h,y[i]+k2);
y[i]:=y[i]+(k0+2*k1+2*k2+k3)/6;
x[i]:=x[i]-h;
i:=i-1;
until x[i]<a;
if ((ya-e)<y[i]) and (y[i]<(ya+e)) then goto Quit else goto Start;
Quit:
Writeln('|', ' i', ' |', '  x   ',       '|', '    y', '   |');
Writeln('---------------------');
for i:=1 to n do
Writeln('|', i:2, ' |', x[i]:5:2, ' |', y[i]:7:4, ' |');
readkey;
end.
Добавлено через 10 часов 49 минут
Снова код подправил, теперь запускается, но правильно не считает, вот
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Program Krajova_zadacha;
uses crt;
label Start, Quit;
const
a=1;
b=2;
ya=0;
yb=0;
e=0.000001;
n=10;
var
x:array [1..11] of real;
y:array [1..11] of real;
h,k0,k1,k2,k3:real;
i:integer;
Function f(x,y:real):real;
begin
f:=exp(x)*y+cos(x);
end;
begin
clrscr;
h:=(b-a)/n;
i:=1;
x[i]:=a;
y[i]:=ya;
Start:
x[1]:=x[i];
y[1]:=y[i];
repeat
k0:=h*f(x[i],y[i]);
k1:=h*f(x[i]+h/2,y[i]+k0/2);
k2:=h*f(x[i]+h/2,y[i]+k1/2);
k3:=h*f(x[i]+h,y[i]+k2);
y[i]:=y[i]+(k0+2*k1+2*k2+k3)/6;
x[i]:=x[i]+h;
i:=i+1;
until x[i]>b;
if ((yb-e)<y[i]) and (y[i]<(yb+e)) then goto Quit else
repeat
k0:=h*f(x[i],y[i]);
k1:=h*f(x[i]-h/2,y[i]+k0/2);
k2:=h*f(x[i]-h/2,y[i]+k1/2);
k3:=h*f(x[i]-h,y[i]+k2);
y[i]:=y[i]-(k0+2*k1+2*k2+k3)/6;
x[i]:=x[i]-h;
i:=i-1;
until x[i]<a;
if ((ya-e)<y[i]) and (y[i]<(ya+e)) then goto Quit else goto Start;
Quit:
Writeln('|', ' i', ' |', '  x   ',       '|', '    y', '   |');
Writeln('---------------------');
for i:=1 to n do
Writeln('|', i:2, ' |', x[i]:5:2, ' |', y[i]:7:4, ' |');
readkey;
end.
0
7 / 7 / 5
Регистрация: 04.11.2010
Сообщений: 25
21.12.2011, 01:25  [ТС]
Опять переделал код, но при установке погрешности <0.2 программа зацикливается...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Program Krajova_zadacha;
uses crt;
label Start, Quit;
const
a=1;
b=2;
ya=0;
yb=0;
e=0.2;
n=11;
var
l:array [1..n] of real;
z:array [1..n] of real;
x,y,h,k0,k1,k2,k3:real;
i:integer;
Function f(x,y:real):real;
begin
f:=exp(x)*y+cos(x);
end;
begin
clrscr;
h:=(b-a)/n;
y:=ya;
Start:
x:=a;
for i:=1 to n do
begin
k0:=h*f(x,y);
k1:=h*f(x+h/2,y+k0/2);
k2:=h*f(x+h/2,y+k1/2);
k3:=h*f(x+h,y+k2);
y:=y+(k0+2*k1+2*k2+k3)/6;
l[i]:=x;
z[i]:=y;
x:=x+h;
end;
if ((yb-e)<z[i]) and (z[i]<(yb+e)) then goto Quit else
x:=b;
for i:=n downto 1 do
begin
k0:=h*f(x,y);
k1:=h*f(x-h/2,y+k0/2);
k2:=h*f(x-h/2,y+k1/2);
k3:=h*f(x-h,y+k2);
y:=y-(k0+2*k1+2*k2+k3)/6;
l[i]:=x;
z[i]:=y;
x:=x-h;
end;
if ((ya-e)<z[i]) and (z[i]<(ya+e)) then goto Quit else goto Start;
Quit:
Writeln('|', '  x   ',       '|', '    y', '   |');
Writeln('-----------------');
for i:=1 to n do
Writeln('|', l[i]:5:2, ' |', z[i]:7:4, ' |');
readkey;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.12.2011, 01:25
Помогаю со студенческими работами здесь

Метод пристрелки. Pascal.
Нужно решить дифф уравнение 2-го порядка методом пристрелки(стрельбы) в Pascal. желательно комментировать каждое действие. Итак,...

Краевая Задача - найти ошибки в коде
Не могу понять в чем ошибка в программе Program zadacha1; const n=10; type setka=array of real; var ...

Метод пристрелки - способы решения
Есть уравнение, которое я пытаюсь решить методом пристрелки. e^x*y''+e^x*y'+k^2*y = 0 перехожу к системе двух уравнений. y'=z ...

Метод пристрелки - разобраться с условием
Не понятно, как тут эта функция g(x) и второе граничное условие с ней же, это что и как вообще? Примеры методы пристрелки какие смотрел,...

Краевая задача
Решение краевых задач методом прогонки для диф. уравнений второго порядка. Подскажите, где ошибка. Погрешности гигантские получаются ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru