Rambler's Top100
                                                                                                                                                                                                                                                                                                                                                                       
          Matlab  |  Mathematica  |  Mathcad  |  Maple  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Банк задач  |  Форум  |  Download  |  Ссылки  |  Конкурсы  |  Edu.allsoft.ru



Как задать периодическую функцию

 
Начать новую тему   Ответить на тему    Форумы Exponenta.ru // Maple
Предыдущая тема :: Следующая тема  
Автор Сообщение
Полищук Андрей



Зарегистрирован: 09.11.2006
Сообщения: 49
Откуда: Ижевск

СообщениеДобавлено: Сб Мар 20, 2010 2:40 am    Заголовок сообщения: Как задать периодическую функцию Ответить с цитатой
Ситуация такая. Задаю массив точек. Зависимость от угла параметров механизма, конкретно, приведённые момент инерции и момент. Проинтерполирую. Получаю зависимости. Теперь это нужно подставить в диффуравнение. А для этого показать, что функции периодические с периодом 2*Pi.
Как это сделать? Давно не брал а руки шашки...
Вернуться к началу
View user's profile Send private message
Kitonum



Зарегистрирован: 31.12.2008
Сообщения: 586
Откуда: г. Пенза

СообщениеДобавлено: Вс Мар 21, 2010 9:16 am    Заголовок сообщения: Re: Как задать периодическую функцию Ответить с цитатой
Полищук Андрей писал(а):
Ситуация такая. Задаю массив точек. Зависимость от угла параметров механизма, конкретно, приведённые момент инерции и момент. Проинтерполирую. Получаю зависимости. Теперь это нужно подставить в диффуравнение. А для этого показать, что функции периодические с периодом 2*Pi.
Как это сделать? Давно не брал а руки шашки...

Для получения аппроксимирующей функции используйте метод наименьших квадратов (команда CurveFitting[LeastSquares]), указав в качестве опции тригонометрический полином, которым хотите приблизить. Количество точек в Вашем массиве должно быть не менее количества коэффициентов (параметров) этого полинома. Тогда Вы автоматически получаете функцию периодическую с периодом 2*Pi и ничего не надо показывать.
Вернуться к началу
View user's profile Send private message
Kitonum



Зарегистрирован: 31.12.2008
Сообщения: 586
Откуда: г. Пенза

СообщениеДобавлено: Вс Мар 21, 2010 2:59 pm    Заголовок сообщения: Ответить с цитатой
Если количество точек в массиве будет равно числу параметров, то тригонометрический полином пройдёт в точности через все точки. Пример:

A:=CurveFitting[LeastSquares]([2*Pi/5,4*Pi/5,6*Pi/5,8*Pi/5,2*Pi],[1,2.5,3,5,2],x,curve=a+b*sin(x)+c*cos(x)+d*sin(2*x)+e*cos(2*x));
A := 2.700000000 - 0.2381966010 cos(x) - 0.4618033989 cos(2. x)
- 1.639247476 sin(x) - 0.7502451005 sin(2. x)


B:=plot(A,x=0..4*Pi,color=blue):
C:=plots[pointplot](<2*Pi/5,4*Pi/5,6*Pi/5,8*Pi/5,2*Pi>,<1,2.5,3,5,2>,color=red,symbolsize=20,symbol=circle):
plots[display](B,C);

Вернуться к началу
View user's profile Send private message
Полищук Андрей



Зарегистрирован: 09.11.2006
Сообщения: 49
Откуда: Ижевск

СообщениеДобавлено: Вс Мар 21, 2010 11:52 pm    Заголовок сообщения: Ответить с цитатой
Спасибо, не учел!
Но есть ли метод указать, что функция, которую я задаю, периодическая в общем случае? Это уже, так сказать, спортивный интерес.
Вернуться к началу
View user's profile Send private message
Kitonum



Зарегистрирован: 31.12.2008
Сообщения: 586
Откуда: г. Пенза

СообщениеДобавлено: Пн Мар 22, 2010 1:41 am    Заголовок сообщения: Ответить с цитатой
Полищук Андрей писал(а):
Спасибо, не учел!
Но есть ли метод указать, что функция, которую я задаю, периодическая в общем случае? Это уже, так сказать, спортивный интерес.

Есть, конечно! Следующая процедура PP осуществляет периодическое продолжение функции f, заданной на отрезке [0,T], на всю числовую ось с периодом T:

PP:=proc(f,T)
local g;
assign(g,x->piecewise(0<=x and x<=T,f(x),f(x-floor(x/T)*T)));
g;
end proc:


Пример:
g:=PP(x->piecewise(0<=x and x<=1,x^3,2-x),2)(x):
plot(g,x=-2..6,scaling=constrained,thickness=2);
Вернуться к началу
View user's profile Send private message
Начать новую тему   Ответить на тему    Форумы Exponenta.ru // Maple Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах

Powered by phpBB
Карта сайта | На первую страницу | Поиск |О проекте |Сотрудничество |e-mail | Matlab | Edu.allsoft.ru | IT.Academy.Ru | Трудоустройство выпускников | Подписка на MSDN для вузов

Наши баннеры


Copyright © 2000-2009. Компания AXOFT. Все права защищены.

Сайт начал работу 21.10.2005

Дистрибуция лицензионного программного обеспечения

 

            Rambler's Top100