|
|
Опции темы | Опции просмотра |
05.10.2019, 16:22 | #1 (permalink) |
Новичок
Регистрация: 02.10.2019
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Найти решение краевой задачи для обыкновенного дифференциального уравнения 2 порядка
(K(x)*U'(x))'-q(x)*U(x)=-f(x), 0<=x<=1, K(0)*U'(0)=b1*U(0)-t1, -K1(1)*U'(1)=b2*U'(1)=b2*U(1)-t2, Точность решения задачи e=0.001. Значение шага h для разностой схемы выбирать из требований точности решения. Задание выполнить методом Стрельбы |
05.10.2019, 16:22 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Я думаю, что решение проблемы можно поискать в аналогичных топиках Найти решение задачи Коши для ОДУ методом Рунге-Кутта 4-го порядка Решение дифференциального уравнения второго порядка Решение уравнения методом Рунге-Кутты 4-го порядка |
08.10.2019, 20:20 | #2 (permalink) |
Новичок
Регистрация: 02.10.2019
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Попытался сделать, но не получается. Помогите
Код:
uses CRT; label Start, Quit; Const t0 = 0.0; y0 = 0.0; z0 = 0.0; h = 0.01; t_max = 1.0; Var T,Y,Z,Y1,Z1:real; i,N:integer; Function f(t,y,z:real):real; begin f := (t + 2) * y - z - cos(t); end; Function g(t,y,z:real):real; begin g := z; end; Procedure RK(t,y,z:real; var Uy:real; var Uz:real); var k1,k2,k3,k4,q1,q2,q3,q4:real; begin k1:=h*f(t,y,z); q1:=h*g(t,y,z); k2:=h*f(t+h/2,y+q1/2,z+k1/2); q2:=h*g(t+h/2,y+q1/2,z+k1/2); k3:=h*f(t+h/2,y+q2/2,z+k2/2); q3:=h*g(t+h/2,y+q2/2,z+k2/2); k4:=h*f(t+h,y+q3,z+k3); q4:=h*g(t+h,y+q3,z+q3); Uz:=z+(k1+2*k2+2*k3+k4)/6; Uy:=y+(q1+2*q2+2*q3+q4)/6; end; Begin N:=Round((t_max-t0)/h); Start: T:=t0; Y:=y0; Z:=z0; //Writeln('t= ',T:4:2,' y= ',Y:8:5); For i:=1 to N do begin RK(T,Y,Z,Y1,Z1); T:=T+h; Y:=Y1; Z:=Z1; //Writeln('t= ',T:4:2,' y= ',Y:8:5); end; if ((z0 - e) < Y) and (Y < (z0 + e)) then goto Quit else t := t_max; For i:=1 downto N do begin RK(T,Y,Z,Y1,Z1); T:=T-h; Y:=Y1; Z:=Z1; Writeln('t= ',T:4:2,' y= ',Y:8:5); end; if ((t0 - e) < Y) and (Y < (t0 + e)) then goto Quit else goto Start; Quit: for i := 1 to n do Writeln('t= ',T:4:2,' y= ',Y:8:5); End. |
09.10.2019, 09:53 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да как Вам сказать... Видите ли, сам я с методом стрельбы никогда дела не имел, да и, откровенно говоря, даже до сих пор и не слыхал о таком. Посмотрел, понял, что разобраться, в принципе, можно. Так может быть, Вы всё-таки сами? Тем более, что Вы явно помоложе меня будете (я, извините, пенсионер), стало быть, мозги светлые, незакомпостированные. А?
|
10.10.2019, 17:30 | #5 (permalink) |
Новичок
Регистрация: 02.10.2019
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Я попытался. Снова залез в литературу Турчака и Мудрова. Как мне кажется необходимо взять за основу программу метода Рунге-Кутта для ОДУ 2 порядка, только при этом добавить условии на выполнение на одном из концов. Допустим в моем случае если я беру слева 0, то на правом тоже должно быть 0. Так как условие не выполняется, необходимо добавить метод дихотомии для разбиения вводимого условия. Как то так у меня сложилась картинка в голове, но не могу записать это в виде кода. Можете хотя бы сказать правильно ли я рассуждаю? Буду очень признателен
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
11.10.2019, 15:09 | #7 (permalink) |
Новичок
Регистрация: 02.10.2019
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Но у меня все равно не получается записать в виде программы это. Не могли бы вы все таки сжалиться надо мной и помочь с кодом, а то я не справляюсь. Вы моя последняя надежда
|
11.10.2019, 15:21 | #8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
И вообще... странно как-то. Видите ли, подобные задачи ставят обычно не просто перед студентами-технарями, а перед теми, кого обучают сложным математическим методам, где-то на уровне мехмата и пр. И если Вы сразу устремляетесь на форумы, то, может быть, это не Ваше вообще? Извините. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|