Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Вниз

График по четырем точкам   Найти похожие ветки 

 
Rouse_   (2004-01-08 13:58) [0]

Есть ли у кого алгоритм построения графика по 4 точкам...
Т.е. линия должна проходить через 4 точки плавно изгибаясь...

Что-то никак не соображу, как сделать именно плавность изгибания линий...

Или, если есть такой компонент, киньте ссылкой...

Заранее спасибо...


 
Rouse_   (2004-01-08 14:00) [1]

Или даже вопрос проще...

Алгоритм наподобие того как работает в стандартном MsPaint инструмент "Кривая"...

Остальное сам додумаю...


 
MBo   (2004-01-08 14:03) [2]

Через 4 точки можно однозначно провести полином 3 степени.
Вариант - разнообразные сплайны.


 
Игорь Шевченко   (2004-01-08 14:14) [3]

PolyBezier


 
Ega23   (2004-01-08 14:15) [4]

ТАк надо знать какого типа кривая должна быть. В принципе, через N точек однозначно можно провести полином N-1ой степени. Но это может и не полином быть, а какая-нить экспонента, или ещё что-нибудь более экзотическое.


 
Rouse_   (2004-01-08 14:37) [5]

Вот, точно, PolyBezier думаю подойдет, странно что я о ней забыл...
Спасибо, Игорь...

А кривая должна отображать КПД котлоагрегата при различных нагрузках...

Всем спасибо... буду проверять, то или н то...


 
hexone   (2004-01-08 14:45) [6]

Безье тебе не подойдет он апроксимационный. Мастера как всегда лаконичны (. Тебе нужен интерполяционный полином Эрмита, например,но алгоритм не очень легкий.
Лезь сюда, там в где-то в топике лежит подцепленный файл
http://www.wasm.ru/forum/index.php?action=vthread&forum=17&topic=4711


 
pasha_golub   (2004-01-08 15:28) [7]

2hexone
А почему именно Эрмита, а не Ньютона или Лагранжа?

И ваще лучше всего использовать сплайны, тут я согласен с MBo. Потому как при увеличении узлов повышается степень многочлена и возможны резкие "скачки" на интервалах между узлами интерполяции. Но если точки всего 4, то можно смело полиномом Лагранжа или Ньютона, хотя это одно и тоже, но тама чуток по разному считаются. Для Лагранжа жедательно составлять схему Маркова (фамилию мог спутать).


 
hexone   (2004-01-08 15:59) [8]


> полиномом Лагранжа или Ньютона, хотя это одно и тоже, но
> тама чуток по разному считаются. Для Лагранжа жедательно
> составлять схему Маркова (фамилию мог спутать).

Вот чтобы не париться лучше с Эрмитом


 
hexone   (2004-01-08 16:01) [9]


> Потому как при увеличении узлов повышается степень многочлена
> и возможны резкие "скачки" на интервалах между узлами интерполяции.
Это еще почему?


 
MBo   (2004-01-08 16:46) [10]

Эрмит требует знания или задания производных в каждой точке - иногда полезно, но далеко не всегда возможно/допустимо.
Лагр. или Ньютон - достаточно знать Xi и Yi, однако, как Паша сказал, при высоких степенях возможны осцилляции.
Если действительно задача стоит построить только по 4 точкам - Л. или Н. будет удобно. Если же точек много - лучше провести сплайн (глобальные - обеспечивают гладкость второго порядка, или локальные - первого порядка). Из локальных Кэтмулл-Ром неплохо выглядит.


 
ЮрийК   (2004-01-08 17:21) [11]

Другой вопрос: Есть много равноотстоящих точек, а нужно их сгладить, может кто коды на это дело видел?


 
MBo   (2004-01-08 17:27) [12]

сгладить - если имеется в виду, что кривая должна проходить через заданные точки - интерполирующие сплайны, а если не обязана (например, нужно заодно избавиться от шума), то сглаживающие сплайны.

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

http://www.srcc.msu.su/num_anal/lib_na/cat/cat0.htm


 
Думкин   (2004-01-08 17:36) [13]

> [8] hexone © (08.01.04 15:59)

Париться там вовсе нечего - по Лагранжу выписывается за 7 минут, по Ньютону, конечно, забавнее.


 
ЮрийК   (2004-01-08 18:07) [14]

"сглаживающие сплайны.
Если зависимость достаточно гладкая и может быть приближена полиномом невысокой степени, вполне можно использовать метод наименьших квадратов.
http://www.srcc.msu.su/num_anal/lib_na/cat/cat0.htm"

Сглаживающие сплайны по данному линку есть, или там только метод наименьших квадратов?


 
MBo   (2004-01-08 18:14) [15]

>ЮрийК
Там же заголовок есть - Сплайн-сглаживание


 
ЮрийК   (2004-01-08 18:26) [16]

Спасибо


 
ЮрийК   (2004-01-08 18:29) [17]

Построение одномерного сглаживающего кубического сплайна Сглаживание экспериментально заданной дискретной функции одномерным периодическим кубическим сплайном Среднеквадратическое сглаживание дискретно заданной функции сплайном K-го порядка

Какой из сглаживаний лучше использовать, Если зависимость недостаточно гладкая?


 
MBo   (2004-01-08 18:36) [18]

IS01 используй
второе - для периодического сплайна, третье - построение B-сплайнов любого порядка, не только кубических


 
Rouse_   (2004-01-08 19:07) [19]

Ну ребят вы загнали ;)
Мне блок кода сдать нужно, а тут чуть ли не всю высшую математику вспомнили ;))
Хотя, всеравно, Огромное спасибо...
Совет Игоря подошел именно под то, что нужно было...


 
ЮрийК   (2004-01-09 16:11) [20]

MBo
Ещё вопрос есть, для решения системы линейных уравнений самого общего вида что лучше взять оттуда?
Или ещё откуда, если кто знает.


 
pasha_golub   (2004-01-09 17:03) [21]

2ЮрийК
Пардон, откуда оттуда? И как это "самого" общего вида? Бывают более-менее общего? Я честно признаться, ни черта не понял.


 
ЮрийК   (2004-01-09 17:11) [22]

pasha_golub
http://www.srcc.msu.su/num_anal/lib_na/cat/cat0.htm


 
Brahman   (2004-01-09 17:20) [23]

Для "общего" случая можно: метод Гаусса с выбором ведущего элемента, метод Гивенса (вращений)..



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.01 c
3-62998
Vitall
2003-12-23 14:38
2004.01.20
Как создать диаграмму? Очень надо


1-63091
Michael K
2004-01-08 14:39
2004.01.20
Определение кодировки текстового файла, OEM или ANSI


7-63421
XsID
2003-11-02 20:18
2004.01.20
Как создать винчестер?


3-62972
NickNaz
2003-12-23 12:49
2004.01.20
Столбец DbGrid


3-63035
gleb
2003-12-22 13:07
2004.01.20
dbgrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский