Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Разное _ Нелинейная интерполяция

Автор: irreplaceable 19.2.2009, 19:47

Добрый вечер!
Ребят, помогите, пожалуйста, советом. Передо мной стоит следующая задача: у меня есть экспериментальные данные, которые представлены таблицей:
http://ipicture.ru/
как Вы видите график по у1 имеет, на мой взгляд, экспоненциальный вид.
Итак, задача следующая: найти значения параметры у1 по изменяемому параметру х от 1 до 49 и от 51 до 99. Подскажите, пожалуйста, численный метод, которые позволит посчитать это с минимальной погрешность, желательно <0.001?
Спасибо!

Автор: Dimka 19.2.2009, 20:26

Рядом Фурье не желаете воспользоваться? Чем больше в нем слагаемых будете брать, тем точнее будет получаться вид Вашей кривой. Зачем Вам точность до тысячных, если у Вас исходные данные с точностью до десятых?

Автор: Руководитель проекта 19.2.2009, 20:32

А почему экспонента, а не, например, парабола?

P.S. Чуть более точно сформулируйте задачу.

Автор: irreplaceable 19.2.2009, 21:53

Dimka, спасибо за подсказку. Да, Вы правы, такую точность соблюдать не стоит, но хотя бы сотые нужны, т.к. на 48 х разница 1.3... беря по десятым получатся одинаковые значения для многих х. А не подскажете как это разложить в ряд Фурье, а то туго у меня с математикой=(
Руководитель проекта, согласен, что я просто сказал это "от балды"... вообще это просто кривая и вряд ли является фигурой.
Задача у меня такая: найти промежуточные значения с максимальной точностью.

Автор: Dimka 20.2.2009, 6:02

Для начала определитесь для чего это Вам вообще нужно? Вы пишите курсовой проект в котором конструируете какой-то прибор или что? Интерполяцию можно до бесконечности усложнять, получая более сложное уравнение, описывающее Вашу кривую. У меня, например, при разложении функции в ряд Фурье математическое выражение, описывающее Вашу кривую, состоит из 500 слагаемых. Можно сделать апроксимацию полиномом Лагранжа, но там свои есть проблемы...
Если Вы пишите программу, то проще будет вашу кривую лианеризовать, например на интервалах 0...25, 25...50 заменить плавную кривую на два прямолинейных отрезка, написав соответствующие уравнения прямых по двум точкам. Далее проверять, если измеренное значение x принадлежит интервалу 0..25, то его подставлять в первое уравнение прямой, если принадлежит интервалу x=25...50, то x подставлять во второе уравнение прямой и т.д. Чем больше будет прямолинейных участков на искривленных участках Вашей кривой, тем выше будет точность.

Автор: irreplaceable 20.2.2009, 9:31

Ну вообще это маленькая часть дипломной работы моего друга и ему требуется найти эти промежуточные значения для решения каких-то задач... дело в том, что мне необходимо это "загнать" в програму, а там разбитие кривой на два прямолинейных отрезка в динамическом виде мне представляется почти нереальным... ведь у-ов может быть сотни и кривая может менять в зависимости от них. А расскажите, пожалуйста, как разложить в ряд Фурье без привязки к графическому изображению кривой, т.е. все исключительно через числа?

Автор: Dimka 20.2.2009, 10:40

Цитата(irreplaceable @ 20.2.2009, 12:31) *

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


Ну естественно. Обычно для начала делается куча измерений, затем составляется математическая модель. Больше измерений, сложнее формула, точнее результат. По двум точкам уравнение Вашей кривой не составишь.



Цитата(irreplaceable @ 20.2.2009, 12:31) *

А расскажите, пожалуйста, как разложить в ряд Фурье без привязки к графическому изображению кривой, т.е. все исключительно через числа?


Разложение так и делается: по указанным Вами точкам я составил 3 уравнения прямых на интервале 0..50, 50..100, 100..150 и для них написал разложение. Получил формулу, описывающую график.
Исходными данными является не графический образ, а результаты Ваших измерений (точки). Чем больше будет измерений, тем больше будет интервалов и соответственно больше линейных уравнений, тем точнее. Однако, данная формула мало пригодна для практического применения, т.к. в ней 500 слагаемых и компьютер у меня строил график в течение 5 мин. Лучше запрограммировать систему так, как я написал выше. Измерение - проверка принадлежности измерения к интервалу - подстановка измерения в формулу прямой, "работающей" на данном интервале - получение результата. Это просто, надежно и быстро.

Автор: irreplaceable 20.2.2009, 19:52

Dimka, а не могли бы Вы поделиться тем материалом, по которому компьютер у Вас строил график. Время вычислений для меня не принципиально =)

Автор: Phrep 20.2.2009, 20:17

Ваши числа точно соответствуют зависимости
y=5,2(x/100)^2+28,7

Автор: Dimka 20.2.2009, 20:29

Цитата(irreplaceable @ 20.2.2009, 22:52) *

Dimka, а не могли бы Вы поделиться тем материалом, по которому компьютер у Вас строил график. Время вычислений для меня не принципиально =)


Вот.


Цитата(Phrep @ 20.2.2009, 23:17) *

Ваши числа точно соответствуют зависимости
y=5,2(x/100)^2+28,7


Более менее точно.

Автор: Dimka 20.2.2009, 20:43

Можно уравнение параболы по трем точкам записать y=ax^2+bx+d

28.7=a*0+b*0+d
30=a*50^2+b*50+d
33.9=a*100^2+b*100+d

решив эту систему получите коэффициенты a=13/25000, b=0, c=28.7

Уравнение искомой параболы 13x^2/25000 + 28.7 Она тоже будет более менее точно описывать Вашу кривую.

Автор: irreplaceable 20.2.2009, 20:47

Цитата

Уравнение искомой параболы 13x^/25000 + 28.7 Она тоже будет более менее точно описывать Вашу кривую.

а какая степень?

Автор: Dimka 20.2.2009, 20:48

2

Автор: irreplaceable 20.2.2009, 21:05

Жаль, что у2 по этому уравнению не просчитать. значение при 150 равно 48.6 вместо 48.8=(...хотя при 100 совпадает.

Автор: Dimka 20.2.2009, 21:17

Уравнение для y2
y2=(1/3750000)*x^3+(27/50000)*x^2+(19/3000)*x+174/5


Ну что, круто? Все совпадает?

Автор: irreplaceable 20.2.2009, 21:23

О, Вы гений! Все совпадает. А сложно предположить какая тут может быть погрешность?

Автор: Dimka 20.2.2009, 21:33

В контрольных точках, которые Вы привели, погрешность равна нулю.
Абсолютная погрешность = разность значений функции, заданной графически и математематически в конкретной точке.

Автор: irreplaceable 20.2.2009, 21:45

Эх, ну все равно здорово, что Вы мне так сильно помогли! Спасибо огромное! даже не знаю, чем вас отблагодарить;)

Автор: Dimka 20.2.2009, 22:21

Цитата(irreplaceable @ 21.2.2009, 0:45) *

....даже не знаю, чем вас отблагодарить;)


Чем Ваш друг собирается Вас благодарить?

Автор: irreplaceable 20.2.2009, 22:45

Думаю, что ничем=) Да я и человек такой, что у меня вроде все есть... в смысле я не Пэрис Хилтон... все есть для моей жизни=) Поэтому не привык ждать подарков за помощь, тем более, что по сути помогли Вы.

Автор: Руководитель проекта 21.2.2009, 5:53

Цитата(irreplaceable @ 21.2.2009, 0:23) *

О, Вы гений! Все совпадает.

Думаю, что гениями были Лагранж и Ньютон, которые предложили свои интерполяционные полиномы smile.gif

Автор: Dimka 21.2.2009, 5:58

Цитата(irreplaceable @ 21.2.2009, 1:45) *

Думаю, что ничем=) Да я и человек такой, что у меня вроде все есть...


У меня тоже.


Цитата(Руководитель проекта @ 21.2.2009, 8:53) *

Думаю, что гениями были Лагранж и Ньютон, которые предложили свои интерполяционные полиномы smile.gif


Мы тоже не "дурачки". smile.gif

Автор: tig81 21.2.2009, 8:21

Цитата(Dimka @ 21.2.2009, 7:58) *

Мы тоже не "дурачки". smile.gif

thumbsup.gif megalol.gif

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)