|
|
  |
Как найти коэффициентов полинома лагранжа по его корня? |
|
|
|
Nov 20 2012, 22:02
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Цитата если есть n пар x y можно составить и решить систему линейных уравнений n-го порядка. Если n невелико (порядка нескольких единиц), то не сложно ещё и минимизировать количество операций для этого. ЗЫ: можно не находить коэффициенты а применять интерполяционный многочлен в форме Лагранжа ЗЗЫ: и это вовсе не корни многочлена а узловые точки
|
|
|
|
|
Nov 21 2012, 06:08
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 2-06-05
Из: Днепропетровск
Пользователь №: 5 658

|
Цитата(_Ivana @ Nov 21 2012, 02:02)  можно составить и решить систему линейных уравнений n-го порядка. Если n невелико (порядка нескольких единиц), то не сложно ещё и минимизировать количество операций для этого.
ЗЫ: можно не находить коэффициенты а применять интерполяционный многочлен в форме Лагранжа ЗЗЫ: и это вовсе не корни многочлена а узловые точки Да, действительно ошибочка, это узловые точки. Мне нужно находить имеенно коэфициенты. Просто интерполяция ясна но она не подходит. Решать систему не получится, точнее муторно, n может быть до 6. Должен же быть как либо численный метод нахождения коэффициентов
|
|
|
|
|
Nov 21 2012, 06:49
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(Petrovich @ Nov 21 2012, 10:08)  Решать систему не получится, точнее муторно, n может быть до 6. Должен же быть как либо численный метод нахождения коэффициентов MATLAB? >> x = [1,2,3,4,5,6,7]; >> y = [3,2,5,6,8,7,3]; >> p = polyfit(x,y,6) p = 0.0375 -0.9208 8.9375 -43.6458 112.0250 -139.4333 66.0000 >>
|
|
|
|
|
Nov 21 2012, 07:58
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 2-06-05
Из: Днепропетровск
Пользователь №: 5 658

|
Цитата(blackfin @ Nov 21 2012, 10:49)  MATLAB?
>> x = [1,2,3,4,5,6,7]; >> y = [3,2,5,6,8,7,3]; >> p = polyfit(x,y,6)
p =
0.0375 -0.9208 8.9375 -43.6458 112.0250 -139.4333 66.0000
>> Я наверно не совсем понятно объяснил. Это должно происходить в приборе, в который Матлаб к сожалению не запихнуть... А вот сделать так как делается в Матлабе, было бы не плохо.
|
|
|
|
|
Nov 21 2012, 17:05
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(Serg76 @ Nov 21 2012, 19:22)  Возьмите, например, метод Гаусса с выбором главного элемента, при малых порядках он предпочтительнее. да, но, всяко, ТС не озвучил ни тип железа, ни тип сетки. Если взять экспоненциальео сгущающуюся сетку и эдак 10 точек, то Гаусс с выбором (и по строке и по столбцу) уже в двойной точности развалится, хотя из всех "просто программируемых" методов - это самый простой, строчек в 15 можно уложиться.
|
|
|
|
|
Nov 21 2012, 17:54
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 2-06-05
Из: Днепропетровск
Пользователь №: 5 658

|
Цитата(iiv @ Nov 21 2012, 20:05)  да, но, всяко, ТС не озвучил ни тип железа, ни тип сетки. Если взять экспоненциальео сгущающуюся сетку и эдак 10 точек, то Гаусс с выбором (и по строке и по столбцу) уже в двойной точности развалится, хотя из всех "просто программируемых" методов - это самый простой, строчек в 15 можно уложиться. Процессор PIC32. Узловых точек может быть от 2 до 6. Точность... Не знаю с какой точностью должен быть коэффициент, но вычисленный по построенному полиному результат должен имет один знак после запятой. На вычисление есть около 5 мс. Почитаю про Гауса. Спасибо за советы.
|
|
|
|
|
Nov 21 2012, 18:36
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(Petrovich @ Nov 21 2012, 23:54)  Процессор PIC32. Узловых точек может быть от 2 до 6. Точность...На вычисление есть около 5 мс. Почитаю про Гауса. Спасибо за советы. Тогда выбора почти нет... Программируете Гаусса, но обязательно с выбором ведущего элемента по всей оставшейся подматрице - не пугайтесь, это реально просто! Должно при старании получится строк 15. Делаете это в одинарной точности, ее обычно будет не хватать, если точки криво располагаются... Дальне любым простым итерационным методом уточняете решение, в Вашем случае сходимость будет однозначно, поэтому, не мудрствуя лукаво, можно поставить простую итерацию. Стоимость будет на матрице 6х6 примерно 100 флоат операций. Сделаете пяток таких итераций, получите устойчивое решение. Если с сеткой будет везти, то и Гаусса хватит. Гаусс на даубле отъест у Вас раз так в 20 больше арифметических ресурсов, в 5мс не уложитесь
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|