IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Про график (http://www.imho.ws/showthread.php?t=77658)

PASHAN 15.01.2005 14:44

Про график
 
Здравствуйте...вопрос собственно такой:
Даны 8 точек с координатами...И нужно построить график(кривая) через эти точки...Ломанную я знаю как сделать а как кривую нет...помогите пожалуйста...
Формулы как вы поняли этого графика нету...

RaZEr 15.01.2005 14:50

http://www.delphirus.com.ru/delphi-sovetid-1250.html

chesnok 15.01.2005 14:51

Ну во-первых, если у тебя нет никакой информации о графике, кроме конечного кол-ва точек, то теоретически невозможно его точно построить.
Практически, если точек достаточное кол-во и они расположены достаточно плотно (идеальный вариант - по 1-2 точки на каждый интервал монотонности второй производной), то в принципе, можно восстановить функцию.
З.Ы. Excel по точкам на графике может восстановить функцию. Но алгоритм достаточно сложен, так что мой тебе совет - либо заседай за умные книги по мат. анализу и дискретной математике, либо разузнай побольше точек графика и тупо соедини их отрезками, сделав ломаную. Если точек достаточное кол-во, то ломаная выглядит очень похоже на реальный график.
З.З.Ы. Ну в принципе можно и по совету тов. RaZEr'а, но точки, выбранные из графика функции, хотя и задают кривую Безъе, но эта кривая может и не совпадать с графиком...
З.З.З.Ы. В любом случае, чем больше точек графика известно, тем лучше ))

dyr_farot 15.01.2005 14:57

ну не так уж и сложно -- любой метод экстрополяции ( кроме линейной ) подойдет

Ghost 15.01.2005 14:58

PASHAN
Значит нужно составить эту функцию, хотя бы приближенно и внутри заданного интервала. Т.е. интерполировать. Ищи описание полиномов Лагранжа и Ньютона и методы их посторения - пока поищу сам, где-то у меня валялись алгоритмы...

PASHAN 15.01.2005 15:09

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

dyr_farot 15.01.2005 15:12

тогда просто соедени точки прямыми и не морочь голову экстраполяцией

PASHAN 15.01.2005 15:16

Я ученик 10 класса...поэтому не знаю что такое экстраполяции и те термины которые выше написаны :)

ну тоесть просто так кривую построить как я понял нельзя?

dyr_farot 15.01.2005 15:19

просто -- нельзя
если есть желание -- могу вечером кинуть алгоритмы

PASHAN 15.01.2005 15:28

Давай....Посмотрю на будущее...

ЕЖ 15.01.2005 16:01

PASHAN
Тебе всё очень правильно посоветовали познакомиться с основами интерполяции дискретных точек графика в непрерывную функцию.
Обязательно сделай это.

Но на сколько я понял у тебя в данном случае стоит тривиальная задача просто красивой визуализации графика. Такие возможности сейчас есть во многих компонентах построения графиков. Могу порекомендовать последний TeeChart, имеющий такую возможность. Можешь посмотреть пример такого графика (Smooth) на их оффсайте http://www.steema.com/products/teech...reenshots.html

Ghost 17.01.2005 12:06

Вложений: 1
Итак, есть x[0..n] аргументов и y[0..n] значений неизвестной функции y=f(x). Нужно построить g(x), которая в узлах (x[i]) будет совпадать с табличными данными, а внутри отрезков приближена (желательно) к f(x).

Для нахлждения этой g(x) используется интерполирование и построение интерполяционных полиномов Лагранжа (самый простой) или Ньютона. В аттаче см. формулу полинома Лагранжа.

Более побробно можешь почитать здесь:
  1. А.А.Самарский ВВЕДЕНИЕ В ЧИСЛЕННЫЕ МЕТОДЫ
  2. Н.Н.Калиткин ЧИСЛЕННЫЕ МЕТОДЫ


Часовой пояс GMT +4, время: 13:24.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.