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

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

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

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


Новичок
*

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

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


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

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

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


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

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

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


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


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


Новичок
*

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

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


я не понимаю как сделать конечно-разностным методом unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 10.12.2010 23:56
Сообщение #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 
 К началу страницы 
+ Ответить 
Igor_Fist
сообщение 11.12.2010 0:21
Сообщение #5


Новичок
*

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

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



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


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

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

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


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


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


Новичок
*

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

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


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

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

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


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

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

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


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

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


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


Новичок
*

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

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


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


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

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

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


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

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

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


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


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

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

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


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

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


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


Новичок
*

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

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


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

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

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


У преподавателя спросить смогу завтра..точнее уже сегодня
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Igor_Fist
сообщение 15.12.2010 19:37
Сообщение #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 
 К началу страницы 
+ Ответить 
Lapp
сообщение 16.12.2010 11:40
Сообщение #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 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 16.12.2010 12:03
Сообщение #16


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

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

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


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

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


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


Новичок
*

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

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


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

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

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

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

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

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


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


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

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

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


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

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


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


Новичок
*

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

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


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

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

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

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


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

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

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


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


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

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

 



- Текстовая версия 20.07.2025 14:57
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"