Что значит построить фигуру Лиссажу конечно-разностным методом? |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Что значит построить фигуру Лиссажу конечно-разностным методом? |
Igor_Fist |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
Всем привет! В паскале я чайник Вот дали задание,помогите пожалуйста:
Построить фигуру Лиссажу путем генерации сигналов y=sinx и y=cosx по ортогональным осям. Вычисления производить путем поперменной генерации сигналов конечно-разностным методом в интервале изменения аргумента 0...2pi. Обеспечить ошибку относительно системных функций e=10^(-5).Вывод информации графический с текстовым контролем ошибок. Заранее спасибо! |
TarasBer |
Сообщение
#2
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Сам-то пробовал что? С нуля полностью делать за тебя никто ничего не будет.
-------------------- |
Igor_Fist |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
я не понимаю как сделать конечно-разностным методом
|
TarasBer |
Сообщение
#4
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Это очень умное слово для решения дифуров, в данном случае оно только пафос нагоняет.
В общем это типа вместо того, чтобы рисовать все точки (это невозможно на компе), рисуются только точки, соответствующие t0 = 0 t1 = h t2 = 2*h .... tN = N*h (N и h выбирается так, чтобы картинка была красивой, например, h = 0.001, H = trunc(2*Pi/h)) И для каждого такого момента t рисуется своя точка (с координатами sin(t*2), cos(t*3), например). То есть вывод делается таким циклом:
-------------------- |
Igor_Fist |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
ToScreen(sin(t*2), cos(t*3)) - что делает toscreen? |
TarasBer |
Сообщение
#6
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Ну это я оставил простор для фнтазии. Типа ты сам опиши процедуру, которая принимает два вещественных числа (координаты) и выводит точку на экран в нужное место, с учётом размера и положения окна.
-------------------- |
Igor_Fist |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
Вот само задание:
Построить фигуру Лиссажу путем генерации сигналов y=sinx и y=cosx по ортогональным осям. Вычисления производить путем поперменной генерации сигналов конечно-разностным методом в интервале изменения аргумента 0...2pi. Обеспечить ошибку относительно системных функций e=10^(-5).Вывод информации графический с текстовым контролем ошибок. Я не могу понять этй фразу:Вычисления производить путем поперменной генерации сигналов конечно-разностным методом в интервале изменения аргумента 0...2pi. помогите пожалуйста!натолкните на путь истиный |
TarasBer |
Сообщение
#8
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
-------------------- |
Igor_Fist |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
сорри,но я создал потому что всё равно не понял((конечно-разностный метод он используется для решения диф.кравнений,а для чего тут он?здесь какие диф.уравнения?и можт здесь конечно-разностная интерполяция используется?
|
Lapp |
Сообщение
#10
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
сорри,но я создал потому что всё равно не понял((конечно-разностный метод он используется для решения диф.кравнений,а для чего тут он?здесь какие диф.уравнения?и можт здесь конечно-разностная интерполяция используется? Игорь, этого тут никто не понял. И именно это тебе пытались сказать. Может, ты не совсем точно привел условие? Перепиши его полностью и без каких-либо изменений.Темы объединяю. Добавлено через 4 мин. Перечитав изначальную формулировку условия, я подумал, что тебе нужно было sin и cos рассчитывать конечно-разностным методом (а не использовать библиотечные). То есть получить их из решения некоторого диффура (с точностью 10-5). Какого именно - вопрос пока открыт. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Igor_Fist |
Сообщение
#11
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
Задание привел точно как дали.вот и сам то думаю для чего он тут конечно-разностный метод.
Код Program lissagu; uses graph,crt; var driver,mode,i:integer; x0,y0,kx,ky:real; h,w1,w2:real; n:integer; function XX(x:real):integer; begin XX:=round((x-x0)*kx); end; function YY(y:real):integer; begin YY:=getmaxy-round((y-y0)*ky); end; begin driver:=detect; initgraph(driver,mode, ' '); x0:=-1.2; y0:=-1.2; kx:=getmaxx/2.4; ky:=getmaxy/2.4; n:=100; h:=2*pi/n; w1:=2*pi/2; w2:=2*pi/6; moveto(XX(0),YY(1)); for i:=1 to n do lineto(XX(sin(w1*i*h)),YY(cos(w2*i*h))); writeln('figura lissaju'); readln; end. есть программа без использования этого метода и без обеспечения ошибки относительно системных функций,и вот как тут это все применить Сообщение отредактировано: Igor_Fist - |
Lapp |
Сообщение
#12
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Задание привел точно как дали.вот и сам то думаю для чего он тут конечно-разностный метод. Ну ясно же написано:Цитата путем генерации сигналов конечно-разностным методом Видишь? Не строить фигуру к.-р. методом, а именно генерировать сигналы. Но только ясности это прибавляет не очень много. Похоже, что тебе надо смоделировать какой-то процесс (и для этого решать диффур). А ты не можешь спросить у преподавателя, что имелось в виду? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Igor_Fist |
Сообщение
#13
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
Ну ясно же написано: Видишь? Не строить фигуру к.-р. методом, а именно генерировать сигналы. Но только ясности это прибавляет не очень много. Похоже, что тебе надо смоделировать какой-то процесс (и для этого решать диффур). А ты не можешь спросить у преподавателя, что имелось в виду? У преподавателя спросить смогу завтра..точнее уже сегодня |
Igor_Fist |
Сообщение
#14
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
проконсультировался с преподавателем.Этот метод описывается в его книге
В этом методе sin и cos не считаются. ошибка относительно системных функций берется из разницы конечно-разностного метода и метода когда фигура строится при помощи системы смоделировать сигналы S1=sin(wt); S2 = cos(wt). Представим сигналы в виде: S1,n+1 = sin( w (tn+dt) ) = sinwtncoswdt + cosw; S2, n+1 = cos(w (tn+dt) )= coswtncoswdt - sinwtnsinwdt; или S1,n+1 =S1,nh1 + S2,nh2; S2,n+1=S2,nh1- S1,nh2; где h1= cos(wdt); h2= sin(wdt); S1,0= 0; S2,0= 1. Сигналы S1,n+1, S2,n+1 моделируются попеременно. Метод конечно-разностной генерации имеет недостаток накопления ошибок. Ошибка увеличивается к последующим шагам. Когда она превышает допустимые значения, необходимо произвести коррекцию путем нового вычисления разгонных точек. |
Lapp |
Сообщение
#15
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Представим сигналы в виде: S1,n+1 = sin( w (tn+dt) ) = sinwtncoswdt + cosw; S2, n+1 = cos(w (tn+dt) )= coswtncoswdt - sinwtnsinwdt; или S1,n+1 =S1,nh1 + S2,nh2; S2,n+1=S2,nh1- S1,nh2; где h1= cos(wdt); h2= sin(wdt); S1,0= 0; S2,0= 1. Сигналы S1,n+1, S2,n+1 моделируются попеременно. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
TarasBer |
Сообщение
#16
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> Когда она превышает допустимые значения
Как это определять? Заранее на бумаге вычислить кол-во итераций, через которые надо делать коррекцию? -------------------- |
Igor_Fist |
Сообщение
#17
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
Игорь, в форме ответа есть нижние индексы (sub). Пожалуйста, перепиши сообщение (если тебе все еще нужна помощь). Очень трудно такое понимать. И умножение обозначь яснее.. прикрепил файл с этим методом,то что нужно в конце Добавлено через 3 мин. Цитата > Когда она превышает допустимые значения Как это определять? Заранее на бумаге вычислить кол-во итераций, через которые надо делать коррекцию? ничего заранее вычислять вроде бы не надо,если ошибка будет превышать заданную,то необходимо изменить шаг моделирования Прикрепленные файлы _________________________.doc ( 40.5 килобайт ) Кол-во скачиваний: 257 |
TarasBer |
Сообщение
#18
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> если ошибка будет превышать заданную
> Как это определять? -------------------- |
Igor_Fist |
Сообщение
#19
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
|
TarasBer |
Сообщение
#20
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Ну и какой тогда смысл этого метода, если всё равно надо для сравнения считать по-старому? Смысл-то в быстром расчёте следующего положения, чтобы не считать синусы и косинусы каждый раз!
Я пока склоняюсь к > Заранее на бумаге вычислить кол-во итераций, через которые надо делать коррекцию? -------------------- |
Текстовая версия | 18.05.2024 16:03 |