14.05.2014, 22:13 | #1 (permalink) |
Member
Регистрация: 14.05.2014
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Turbo Pascal. Численные методы
Задание во вложении |
14.05.2014, 22:13 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Похожие посты уже встречались на нашем форуме, обратите внимание Погрешности для вычисления объема шара. Численные методы Turbo Pascal Turbo Pascal |
15.05.2014, 10:22 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Та-ак... Май, стало быть, к концу, забрезжила сессия, студенты просыпаются после весенней спячки...
Ну вот что, господа лоботрясы - хватит! Всем курсом решили на мне поездить? Не пойдёт! Стало быть, так: Алгоритм решения задачи методом Рунге-Кутты (да-да, именно Кутты, а не Кутта, ибо фамилия математика - Кутта, а не Кутт, так можете и передать своим преподам) имеется здесь и здесь, методы численного решения уравнений, включая половинное деление, - здесь. Вперед и с песней! |
15.05.2014, 11:17 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну так а что же мне остаётся, если почти идентичные задачи в последние дни посыпались, как из рога изобилия? И никто не хочет взять готовый шаблон (ссылки выше) и, приложив минимальные усилия, адаптировать готовые решения к своей задаче. Нет, каждому распиши от и до, чтобы осталось тупо бездумно скатать и сдать.
Знаете, в общем-то мы здесь стараемся именно помогать в затруднительных случаях, а не выполнять учебные задания за лентяев, которые весь семестр профилонили а в последний момент спохватились. А потому, повторяю: ссылки на решения аналогичных задач даны, попытайтесь составить программу под свою задачу, а уж если что-то не будет получаться - мы к Вашим услугам. А просто "вы напишите - я скатаю" - не пойдёт. Извините. |
18.05.2014, 20:39 | #5 (permalink) |
Member
Регистрация: 14.05.2014
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Уважаемый Владимир, в представленных примерах, (не могу дать ссылку т.к у меня менее 20 сообщений) у пользователя Tanechka вы дали решение по методу Эйлера, хотя в задании сказано по методу Рунге-КуттЫ 2го порядка с коррекцией в средней точке, они различаются. Пример в приложении. Пригодилась ссылка для метода половинного деления, а вот с Куттой проблемы
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
18.05.2014, 20:54 | #6 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
|
|
18.05.2014, 20:59 | #7 (permalink) |
Member
Регистрация: 14.05.2014
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
с вами то я спорить не буду, а вот насчет препода, я незнаю что он скажет если начнет в коде копаться, решение то может и верное, но формулы то различаются. с тем что вы мне показали, и что я во вложении показал. Сижу пока думаю как заменить.
|
18.05.2014, 21:45 | #10 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Вот так:
Код:
Const Eps=0.0001; h=0.1; N=10; Var I:Array[0..N] of Real; j:integer; t,Z,k:Real; Function G(p:real):Real; begin G:=p*p*p*p*p-p*p*p-3.0; end; Function EQRoot:real; var a,b,c:real; begin a:=1.0; b:=2.0; Repeat c:=(a+b)/2; if G(a)*G(c)<0 then b:=c else a:=c; Until b-a<Eps; EQRoot:=c; end; Function F(x,y,q:real):real; begin F:=1-Sin(q*x+y)+y/(x+2); end; Begin k:=EQRoot; Writeln('k= ',k:0:5); I[0]:=1; t:=0; writeln('t= ',t:3:1,' I= ',I[0]:6:3); for j:=1 to N do begin t:=t+h; Z:=I[j-1]+h/2*F(t-h,I[j-1],k); I[j]:=I[j-1]+h*F(t-h/2,Z,k); writeln('t= ',t:3:1,' I= ',I[j]:6:3); end; Readln End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|