Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: График и не только Добавлено: 25.07.06 10:59  

Автор вопроса:  BeTe
Есть набор координат Х(1 to 10), Y(1 to 10) т.е. 10 точек. По этим точкам необходимо нарисовать график. Естественно из за малого кол-ва точек он получается с острыми углами. Нужно чтобы он был гладким, но при этом график прошел строго через все указаные точки. Использую интерполяцию функции кубическими сплайнами. Нашел некий алгоритм от БЧА НИВЦ МГУ (http://alglib.sources.ru/interpolation/spline3.php)
Там в описании пишется следующее:

Входные параметры:

N - число точек
DiffN - тип граничного условия. 1 соответствует граничным условиям накладываемым на первые производные, 2 - на вторые.
xs - массив абсцисс опорных точек с номерами от 0 до N-1. Точки могут быть неупорядочены по возрастанию, алгоритм отсортирует их перед расчетами.
ys - массив ординат опорных точек с номерами от 0 до N-1.
BoundL - левое граничное условие. Если DiffN равно 1, то первая производная на левой границе равна BoundL, иначе BoundL равна вторая производная.
BoundR - аналогично BoundL

Со всеми параметрами которые нужно передать все ясно кроме BoundR и BoundL. Напрашивается вопрос. Из чего и/или каким образом узнать значение BoundR и BoundL которые нужно передавать? Возможно они расчитываются по какой-то формуле из исходных данных?

Никогда таким не занимался, поэтому не слишком ориентируюсь в этом воросе и буду рад любой помощи.

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

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #1 Добавлено: 25.07.06 12:03
Стоит на том же сайте http://alglib.sources.ru или же на http://algolist.manual.ru поискать статьи (или ссылки на них) о сплайнах, или же прочитать о них в каком-либо справочнике/учебнике по математике либо в справочнике/учебнике по численным методам.

Ответить

Номер ответа: 2
Автор ответа:
 BeTe



Вопросов: 6
Ответов: 30
 Профиль | | #2 Добавлено: 25.07.06 12:12
Читал, искал, закачивал... Исчерпывающей информации по этому поводу не нашлось. Поэтому и спрашиваю, может кто сталкивался.

Ответить

Номер ответа: 3
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #3 Добавлено: 26.07.06 12:04
Мдя... угадал буквы, но не смог прочитать слово...

Если читал и информации полно, то в чем проблема то?

Ответить

Номер ответа: 4
Автор ответа:
 BeTe



Вопросов: 6
Ответов: 30
 Профиль | | #4 Добавлено: 26.07.06 12:39
Собственно говоря проблема описана в самом вопросе. Из всей найденной литературы не ясно что за значения нужно вносить в качестве левого и правого граничного условий. Там сказано что если условий нету то можно ввести 0 и в качестве производной для которой будут считаться коэф-ты ввести вторую производную. Но при таком раскладе получаются большие всплески на графике, вто время как их быть не должно. Следовательно нужно подбирать граничные условия. но так как набор изначальных координа постоянно меняется, то нужно это каким-то образом высчитывать. Вот и вопрос - как ? Где ? Исходя из чего ?

Ответить

Номер ответа: 5
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #5 Добавлено: 27.07.06 12:02
Стоит поискать численные методы вычисления производных (как первой, так и второй) и с сайта БЧА НИВЦ МГУ скачать описание программы и примеры ее использования. Насколько я помню, все это там есть.

Ответить

Номер ответа: 6
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #6 Добавлено: 28.07.06 12:35
BoundR и BoundL судя по соответствию в VB UBound и LBound можно продположить что это правая и левая границы соответственно...

Ответить

Номер ответа: 7
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #7 Добавлено: 29.07.06 08:13
BoundR и BoundL судя по соответствию в VB UBound и LBound можно продположить что это правая и левая границы соответственно...

2 AgentFire, стоило внимательнее прочитать вопрос прежде чем давать такой ответ.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам