Вопрос № 178528: Помогите разобраться в решении по вычеслительной математике. В приложении код, хотелось бы понять как он работает. Т.е. не как работает программа (readln, writeln и прочее понятно и так), а именно само решение, связанное непосредственно с мате...
Вопрос № 178525:
Ответ отправил: Лиджи-Гаряев Владимир, Практикант
Ответ отправлен: 21.05.2010, 17:06
Номер ответа: 261552
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261552
на номер 1151 (Россия) |
Еще номера »
Вопрос № 178528:
Помогите разобраться в решении по вычеслительной математике.
В приложении код, хотелось бы понять как он работает. Т.е. не как работает программа (readln, writeln и прочее понятно и так), а именно само решение, связанное непосредственно с математикой. Т.е. функции, формулы, ну Вы меня поняли :-)
Отвечает Гаряка Асмик, Специалист :
Здравствуйте, Vilgelm.
Метод Рунге-Кутты применяется в этом куске программы.
xn:=0; yn:=1; xk:=1; h:=0.1; x[1]:=xn; y[1]:=yn; i:=1; repeat k0:=h*f(x[i],y[i]); k1:=h*f(x[i]+1/2*h,y[i]+1/2*k0); {beta 21} y[i+1]:=y[i]+(0*k0+k1); x[i+1]:=x[i]+h; i:=i+1; until x[i]>xk; Имеем дифференциальное уравнение y'=f(x,y) Основная идея методов Рунге-Кутты заключается в том, что производные аппроксимируются через значения функции в точках на интервале [x0,x0+h], которые
выбираются из условия близости к ряду Тейлора. Для второго порядка получено однопараметрическое семейство схем вида y(x0+h)=y0+h[(1-L)f0+Lf(x0+h/2L,y0+f0*h/2L)] В данной программе применяется параметр L=1 y(x0+h)=y0+h[0*f0+f(x0+h/2,y0+f0*h/2)] Здесь вычисляется приближенное значение функции в средней точке x0+h/2, и приращение считается исходя из значения функции в этой точке, которое равно значению производного исходя из уравнения. Метод трапеций записан в
куске кода: integ := y[n]*y[n];n1 := 1;y1 := 0; while integ - y1 > e do begin n1 := n1 + 1; dx := (b - a) / n1; y1 := 0; x1 := a + dx; while x1 < b do begin y1 := y1 + f1(x1,y[n]); x1 := x1 + dx; end; y1 :=y1 + ( + (f1(a,y[n]) + f1(b,y[n])) / 2) * dx; end; Здесь для приближенного вычисления интеграла площадь на каждом отрезке разбиения вычисляется как площадь трапеции, то есть среднее арифметическое значений на концах, умноженное на длину отрезка. si=(yi+yi+1)/2*h Для
постоянного шага можно использовать формулу h((y0+y1)/2+∑yi)
----- Я ни от чего, ни от кого не завишу.
Ответ отправил: Гаряка Асмик, Специалист
Ответ отправлен: 21.05.2010, 00:36
Номер ответа: 261534
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261534
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.