IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Что значит построить фигуру Лиссажу конечно-разностным методом?
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


Всем привет! В паскале я чайник sad.gif Вот дали задание,помогите пожалуйста:

Построить фигуру Лиссажу путем генерации сигналов y=sinx и y=cosx по ортогональным осям. Вычисления производить путем поперменной генерации сигналов конечно-разностным методом в интервале изменения аргумента 0...2pi. Обеспечить ошибку относительно системных функций e=10^(-5).Вывод информации графический с текстовым контролем ошибок.

Заранее спасибо! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
Ответов(1 - 19)
сообщение
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Сам-то пробовал что? С нуля полностью делать за тебя никто ничего не будет.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


я не понимаю как сделать конечно-разностным методом unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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), например).

То есть вывод делается таким циклом:

for i := 0 to N do begin
t := i*h;
ToScreen(sin(t*2), cos(t*3));
end;



--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +



ToScreen(sin(t*2), cos(t*3)) - что делает toscreen?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Ну это я оставил простор для фнтазии. Типа ты сам опиши процедуру, которая принимает два вещественных числа (координаты) и выводит точку на экран в нужное место, с учётом размера и положения окна.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


Вот само задание:
Построить фигуру Лиссажу путем генерации сигналов y=sinx и y=cosx по ортогональным осям. Вычисления производить путем поперменной генерации сигналов конечно-разностным методом в интервале изменения аргумента 0...2pi. Обеспечить ошибку относительно системных функций e=10^(-5).Вывод информации графический с текстовым контролем ошибок.

Я не могу понять этй фразу:Вычисления производить путем поперменной генерации сигналов конечно-разностным методом в интервале изменения аргумента 0...2pi.

помогите пожалуйста!натолкните на путь истиный smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Это значит, что не надо дважды одну тему создавать.

Фигура лиссажу


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


сорри,но я создал потому что всё равно не понял((конечно-разностный метод он используется для решения диф.кравнений,а для чего тут он?здесь какие диф.уравнения?и можт здесь конечно-разностная интерполяция используется?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Igor_Fist @ 14.12.2010 18:10) *
сорри,но я создал потому что всё равно не понял((конечно-разностный метод он используется для решения диф.кравнений,а для чего тут он?здесь какие диф.уравнения?и можт здесь конечно-разностная интерполяция используется?
Игорь, этого тут никто не понял. И именно это тебе пытались сказать. Может, ты не совсем точно привел условие? Перепиши его полностью и без каких-либо изменений.

Темы объединяю.

Добавлено через 4 мин.
Перечитав изначальную формулировку условия, я подумал, что тебе нужно было sin и cos рассчитывать конечно-разностным методом (а не использовать библиотечные). То есть получить их из решения некоторого диффура (с точностью 10-5). Какого именно - вопрос пока открыт.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Igor_Fist @ 15.12.2010 0:16) *
Задание привел точно как дали.вот и сам то думаю для чего он тут конечно-разностный метод.
Ну ясно же написано:
Цитата
путем генерации сигналов конечно-разностным методом

Видишь? Не строить фигуру к.-р. методом, а именно генерировать сигналы.
Но только ясности это прибавляет не очень много. Похоже, что тебе надо смоделировать какой-то процесс (и для этого решать диффур).
А ты не можешь спросить у преподавателя, что имелось в виду?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


Цитата(Lapp @ 15.12.2010 0:23) *

Ну ясно же написано:

Видишь? Не строить фигуру к.-р. методом, а именно генерировать сигналы.
Но только ясности это прибавляет не очень много. Похоже, что тебе надо смоделировать какой-то процесс (и для этого решать диффур).
А ты не можешь спросить у преподавателя, что имелось в виду?


У преподавателя спросить смогу завтра..точнее уже сегодня
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 моделируются попеременно.
Метод конечно-разностной генерации имеет недостаток накопления ошибок. Ошибка увеличивается к последующим шагам. Когда она превышает допустимые значения, необходимо произвести коррекцию путем нового вычисления разгонных точек.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Igor_Fist @ 15.12.2010 19:37) *

Представим сигналы в виде:
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 моделируются попеременно.
Игорь, в форме ответа есть нижние индексы (sub). Пожалуйста, перепиши сообщение (если тебе все еще нужна помощь). Очень трудно такое понимать. И умножение обозначь яснее..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> Когда она превышает допустимые значения

Как это определять? Заранее на бумаге вычислить кол-во итераций, через которые надо делать коррекцию?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


Цитата(Lapp @ 16.12.2010 11:40) *

Игорь, в форме ответа есть нижние индексы (sub). Пожалуйста, перепиши сообщение (если тебе все еще нужна помощь). Очень трудно такое понимать. И умножение обозначь яснее..

прикрепил файл с этим методом,то что нужно в конце

Добавлено через 3 мин.
Цитата
> Когда она превышает допустимые значения

Как это определять? Заранее на бумаге вычислить кол-во итераций, через которые надо делать коррекцию?

ничего заранее вычислять вроде бы не надо,если ошибка будет превышать заданную,то необходимо изменить шаг моделирования


Прикрепленные файлы
Прикрепленный файл  _________________________.doc ( 40.5 килобайт ) Кол-во скачиваний: 257
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> если ошибка будет превышать заданную

> Как это определять?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


Цитата(TarasBer @ 16.12.2010 15:05) *

> если ошибка будет превышать заданную

> Как это определять?

необходимо взять какое то одно значение аргумента для двух методов и сравнить результаты и вот чтоб погрешность эта не превышла заданную
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Ну и какой тогда смысл этого метода, если всё равно надо для сравнения считать по-старому? Смысл-то в быстром расчёте следующего положения, чтобы не считать синусы и косинусы каждый раз!
Я пока склоняюсь к
> Заранее на бумаге вычислить кол-во итераций, через которые надо делать коррекцию?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.05.2024 2:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name