![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 21.04.2013
Сообщений: 7
|
![]()
Необходимо из нарисованной кривой (в двумерной системе координат) получить формулу (с коэффициентами полинома) описывающую данную кривую. Необходимо определиться с методом интерполяции. И как будет выглядеть алгоритм данной программы? кто знает - отпишитесь плиз.
icq 404247279 |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
В общем случае (т.е. как написано в заголовке) задача неразрешима.
Если же нам заранее известен вид кривой (например, полином конкретной степени), то задача сводится лишь к подбору коэффициентов. Коэффициенты обычно подбирают, используя МНК. Да, с "нарисованной кривой" в любом случае ничего сделать нельзя - ее нужно преобразовать в последовательность точек. |
![]() |
![]() |
![]() |
#3 | |
Регистрация: 21.04.2013
Сообщений: 7
|
![]() Цитата:
Рисовать кривую надо в той же программе с помощью "мышки" и точек. Т.е. мне надо и рисовалку сделать (изначально прямая, из которой "мышкой" вытягиваю нужную мне кривую). Ограничение "x" в 20сек и частота дискретизации регулируется до 100гц. Значит надо через равные промежутки времени брать значение "y" из кривой с помощью одного из методов интерполяции. Получится последовательность точек, которую с учетом разных степеней полиномов, необходимо представить формулой с коэффициентами полинома. Как это реализовать в delphi? Последний раз редактировалось Natizk; 21.04.2013 в 12:38. |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
В первом сообщении ничего похожего на "x" в 20сек и частота дискретизации не было.
Поэтому я не могу понять, о чем вообще идет речь. Сформулируйте задачу полностью. |
![]() |
![]() |
![]() |
#5 |
Регистрация: 21.04.2013
Сообщений: 7
|
![]()
Входными данными является нарисованная пользователем кривая в делфи, в двумерной системе координат (X, Y). Ось X - время, не превышает 20 сек. Ось Y не превышает 2047 единиц. Далее пользователь вносит частоту дискретизации Fд<100Гц. Программа должна уметь сохранять параметры (рассчитанные коэффициенты полинома, описывающие нашу кривую, частота дискретизации...) в файл и считывать параметры из файла для повторного использования этой же кривой и ее редактирования.
Последний раз редактировалось Natizk; 21.04.2013 в 15:37. |
![]() |
![]() |
![]() |
#6 | |||||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
В каком виде она представлена в компьютере? Цитата:
Цитата:
"По оси X тоже дискретная шкала с шагом 10мс? И, таким образом, общее количество отсчетов по X составляет 2000." ? Цитата:
Цитата:
Если это так, то чем не устраивает просто записать в файл 2000 чисел, описывающих кривую во всех точках? Или я чего-то не понял? |
|||||
![]() |
![]() |
![]() |
#7 | ||
Регистрация: 21.04.2013
Сообщений: 7
|
![]()
Изначально прямая, которую мы делаем кривой с помощью "мышки", т.е. вытягиваем "мышкой" точки в нужные нам позиции. Кривая должна быть сглаженная.
Это не рисунок. Я должен представить в уме кривую и с помощью "мышки" и делфи - нарисовать. Цитата:
Мне сказали с использованием полиномов и коэффициентов... Цитата:
Этот вариант интересен. Но даже его мне трудно реализовать. И я бы использовал его, но мне сказали получить рассчитанные коэффициенты полинома, описывающие кривую. Последний раз редактировалось Natizk; 21.04.2013 в 16:51. |
||
![]() |
![]() |
![]() |
#8 | ||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
У меня осталось слишком много вопросов.
По порядку: Цитата:
Нужно определиться, как представляется кривая в компьютере. Как она выглядит на экране - уже следствие, причем, следствие, скорее всего, неадекватное. Хотя бы потому, что у нас кривая задана на дискретном поле 2000х2047, а размеры экрана меньше. Следовательно, при выводе на экран часть информации неизбежно будет потеряна. Итак - что такое "кривая"? Цитата:
1. Нужно построить кусочный сплайн по 2000 точкам для обеспечения гладкого восполнения. 2. Нужно построить кусочный сплайн по гораздо меньшему числу точек, чтобы по нему можно было посчитать значение функции в любой из 2000 точек. 3. Всю совокупность имеющихся точек нам нужно описать единым полиномом заданного порядка. 4. Еще какой-то вариант, который мне с ходу не приходит в голову. И еще один важный момент. Вы упомянули время и частоту дискретизации. Но в данном случае, вероятно, более рационально искать представление интересующей нас кривой не в виде ряда Тейлора, а в виде ряда Фурье. По крайней мере, со звуковыми данными следует поступать именно так. Какова специфика Вашего случая - не знаю. |
||
![]() |
![]() |
![]() |
#9 |
Регистрация: 21.04.2013
Сообщений: 7
|
![]()
Можно с Вами иначе связаться? Может по почте?
Последний раз редактировалось Natizk; 21.04.2013 в 17:44. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Заданную логическую формулу преобразовать в эквивалентную днф | sergei15 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 29.05.2012 06:21 |
[Си++ Билдер]Преобразовать математическую формулу в нормальный для компилятора вид | mrG0bliN | Помощь студентам | 7 | 24.01.2012 19:28 |
как стереть нарисованную линию? | Yokka | Общие вопросы .NET | 4 | 06.02.2011 19:15 |
Интерполяция. Как получить гладкую кривую? | Blade | Свободное общение | 3 | 18.02.2010 01:49 |
Преобразовать формулу в макрос | Viento | Microsoft Office Excel | 10 | 23.01.2009 22:35 |