Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Le0nardo
0 / 0 / 0
Регистрация: 07.04.2012
Сообщений: 4
#1

Приближение функций сплайнами - C++

07.04.2012, 01:34. Просмотров 2373. Ответов 4
Метки нет (Все метки)

Разработка программы приближения функций с возможностью работы с файлами (запись и считывания функций) и результатов решения. Очень нужна помощь, надеюсь на вас гении программирования
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2012, 01:34     Приближение функций сплайнами
Посмотрите здесь:

Аппроксимация кривых и поверхностей сплайнами - C++
Помогите пожалуйста...не было даже лекции по теме сплайнов....я в замешательстве...я не смогу реализовать такую сложную программу... 1)...

Приближение к современным технологиям программирования - C++
Доброго времени суток форумчане. Немного истории: не так давно мой одногруппник начал изучать Java после C++. Знания C++ были примерно...

Приближение функции многочленом Лагранжа - C++
Всем привет, нужно написать программу, которая вычисляет приближение функции многочленом Лагранжа. Все реализовал, но возникла непонятка...

Среднеквадратическое приближение функций - MathCAD
Никак не получается подобрать начальные приближения для параметров. Подробности на скринах. Помогите!

Тема дипломной. Наилучшее приближение непрерывных функций - Численные методы
Добрый день. Вообщем взяла я тему дипломной Наилучшее приближение непрерывных функций одной действительной переменной. За основу взяла...

Интерполяция сплайнами - MathCAD
помогите пожалуйста очень нужно функция y=2-1/x узловые точки 0,5;1;1.5;2 Точки в которых необходимо определить значение функции...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UFO94
264 / 253 / 13
Регистрация: 04.04.2012
Сообщений: 546
07.04.2012, 01:41     Приближение функций сплайнами #2
С чем конкретная проблемма? Если с самими сплайнами, то можешь почитать вот тут:
http://alglib.sources.ru/interpolation/spline3.php
+ к этому есть хорошый сплайн, у которого первая производная непрерывна, и согласуется со значениями производной на краях интервала, но там надо решать СЛАР
Le0nardo
0 / 0 / 0
Регистрация: 07.04.2012
Сообщений: 4
07.04.2012, 01:46  [ТС]     Приближение функций сплайнами #3
Цитата Сообщение от UFO94 Посмотреть сообщение
С чем конкретная проблемма? Если с самими сплайнами, то можешь почитать вот тут:
http://alglib.sources.ru/interpolation/spline3.php
+ к этому есть хорошый сплайн, у которого первая производная непрерывна, и согласуется со значениями производной на краях интервала, но там надо решать СЛАР
Проблема в том что я не знаю как написать саму программу. А за инфу о сплайнах спасибо
UFO94
264 / 253 / 13
Регистрация: 04.04.2012
Сообщений: 546
07.04.2012, 10:36     Приближение функций сплайнами #4
Смотри: у тебя есть функция float f(float x); допустим, тебе надо сжедать интерполяцию на промежутке [a;b]. Точность должна быть равна tolerance.
1) Найдем шаг сетки разбиения для кубического сплайна. Его точность пропорциональна h3, потому h=http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt[3]{tolerance} Тогда количество точек разбиения int n=((b-a)/h)+1
1) Сделаем разбиение:
C++
1
2
3
4
5
6
7
float* xtab=new float[n];
float* ytab=new float[n];
for(int i=0; i<n; i++)
{
xtab[i]=a+i*h;
ytab[i]=f(xtab[i]);
}
3) Теперь используем саму интерполяцию. Сплайны кубические, потому нам понадобится массив (4 на n-1)//по 4 коэфициента на каждый из n-1 сплайна
Найдем 1 и 2 производную в точке a. Любым из численных методов дифференцирования. Из четырех условий (известная 1 и 2-я производная в т. a, и сплайн проходит через точки (a,f(a)), (a+h,f(a+h))) найдем коэфициенты -- т.е. сплайн на первом куске есть. Находим от него 1 и 2производную в точке a+h. И используем их для нахождения сплайна на втором куске. И т.д.
Будут какие-то вопросы -- обращайся. А, и еще, на VC я не писал, но думаю, что основная часть кода не должна отличаться от C++.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2012, 12:45     Приближение функций сплайнами
Еще ссылки по теме:

Дифференцирование сплайнами - Численные методы
Добрый вечер. В общем, тему не знаю, а программу написать надо. Нашла статейку, вроде понятно (см. вложение, взято из...

Интерполяция сплайнами - C (СИ)
Есть кто разберется в сплайн интерполяции ??? HELP :help: .... надо сделать программу к среде , может есть у кого нить исходник ?...

Интерполяция сплайнами - C#
Не могу найти толковую литературу по интерполяции сплайнами (для курсача заданы лишь точки x и y). Множество литературы описывают общие...

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

Интерполировать данные сплайнами - Matlab
помогите пожалуйста аппроксимировать и интерполировать (метод интерполяция Сплайновая) в matlab. yy1= X=0:0.6283:4*pi+0.1 функция ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Le0nardo
0 / 0 / 0
Регистрация: 07.04.2012
Сообщений: 4
07.04.2012, 12:45  [ТС]     Приближение функций сплайнами #5
Цитата Сообщение от UFO94 Посмотреть сообщение
Смотри: у тебя есть функция float f(float x); допустим, тебе надо сжедать интерполяцию на промежутке [a;b]. Точность должна быть равна tolerance.
1) Найдем шаг сетки разбиения для кубического сплайна. Его точность пропорциональна h3, потому h=http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt[3]{tolerance} Тогда количество точек разбиения int n=((b-a)/h)+1
1) Сделаем разбиение:
C++
1
2
3
4
5
6
7
float* xtab=new float[n];
float* ytab=new float[n];
for(int i=0; i<n; i++)
{
xtab[i]=a+i*h;
ytab[i]=f(xtab[i]);
}
3) Теперь используем саму интерполяцию. Сплайны кубические, потому нам понадобится массив (4 на n-1)//по 4 коэфициента на каждый из n-1 сплайна
Найдем 1 и 2 производную в точке a. Любым из численных методов дифференцирования. Из четырех условий (известная 1 и 2-я производная в т. a, и сплайн проходит через точки (a,f(a)), (a+h,f(a+h))) найдем коэфициенты -- т.е. сплайн на первом куске есть. Находим от него 1 и 2производную в точке a+h. И используем их для нахождения сплайна на втором куске. И т.д.
Будут какие-то вопросы -- обращайся. А, и еще, на VC я не писал, но думаю, что основная часть кода не должна отличаться от C++.
Огромное спасибо, буду разбираться
Yandex
Объявления
07.04.2012, 12:45     Приближение функций сплайнами
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru