В общем виде: дана конечная последовательность чисел: a(1); a(2); a(3); ...; a(n).
Требуется найти такой приведённый многочлен n-й cтепени:
P(x) = x^n + b(1)x^(n-1) + b(2)x^(n-2) + .+ b(n),
что его значения в точках 1; 2; 3; ...n равны, соответственно, заданным членам последовательности, т. е.
P(1) = a(1); P(2) = a(2); P(3) = a(3); ..; P(n) = a(n),
т. е. по заданным числам a(1); a(2); a(3); ...a(n) вычислить коэффициенты многочлена b(1); b(2); b(3); ...b(n).
Уточню, что нужен именно приведённый многочлен, т. е. такой, у которого старший коэффициент равен 1.
Это похоже на интерполяционный многочлен Лагранжа, только там это многочлен (n-1)-й степени, необязательно приведённый, а аргументы многочлена - произвольные числа, необязательно последовательные натуральные.
Понятно, что в общем виде получается система n линейных уравнений с n неизвестными, в которой вычислить коэффициенты каждого уравнения и решить систему вручную - чисто механическая, но очень громоздкая задача. Есть ли такой онлайн-калькулятор, который бы сразу по заданным числам выдавал искомые коэффициенты многочлена, рассчитывая их гораздо быстрее, чем это сделает человек?
Вот простой пример, чтобы было совсем понятно, что именно требуется. Даны два числа: 2 и 5. Составить приведённый многочлен P(x), такой, что P(1) = 2; P(2) = 5.
Решение: так как дано 2 числа, то ищем многочлен 2-й степени: P(x) = x^2 + ax + b. Подставляя сюда данные из условия, получаем систему: 1^2 + a*1 + b = 2; 2^2 + a*2 + b = 5, или в упрощённом виде a + b = 1; 2a + b = 1. Решаем и получаем a = 0; b = 1, значит, искомый многочлен имеет вид: P(1) x^2 + 1. Действительно, P(1) = 1^2 + 1 = 1 + 1 = 2; P(2) = 2^2 + 1 =4 + 1 = 5.
Вот нужно то же самое, только для произвольного количества произвольных чисел, рассчитываемое на калькуляторе (на котором, разумеется, можно было бы ввести этот пример и выполнить проверку). Где такой калькулятор можно найти?
Естественные науки
Где (на каком сайте) можно найти такой онлайн-калькулятор, который находит коэффициенты многочлена по данным значениям?
Вряд ли есть такие "онлайн калькуляторы".
А вот каким нибудь Octave запросто.
Вот решение для чисел 1,5
polyfit([1,2],[2,5] - [1,2].^2,1)
ans =
-0 1
а вот например, для 9, 4, 7
polyfit([1,2,3],[9,4,7] - [1,2,3].^3,2)
ans =
-2.0000 -6.0000 16.0000
P(x) = x^3 - 2x^2 - 6x + 16
P(1) = 1-2-6+16 = 9
P(2) = 8-8-12+16 = 4
P(3) = 27-18-18+16 = 7
А вот каким нибудь Octave запросто.
Вот решение для чисел 1,5
polyfit([1,2],[2,5] - [1,2].^2,1)
ans =
-0 1
а вот например, для 9, 4, 7
polyfit([1,2,3],[9,4,7] - [1,2,3].^3,2)
ans =
-2.0000 -6.0000 16.0000
P(x) = x^3 - 2x^2 - 6x + 16
P(1) = 1-2-6+16 = 9
P(2) = 8-8-12+16 = 4
P(3) = 27-18-18+16 = 7
Шолпан ***
Да, это, похоже, то, что нужно. Спасибо.
Excel в помощь.
"Найти значения коэффициентов" называется - построить аппроксимирующий многочлен. Тупо вбиваете в один столбик все значения х, в другой столбик, соседний, - все соответствующие значения у. Потом выделяете оба столбика и строите график у (х), в панели "Диаграммы" (Charts) этот вид графика обозначен отдельными точками.
Когда график построен, надо на нём нажать правой кнопкой и выбрать из выпавшего меню опцию Trendline (фиг её знает, как она в русской версии Экселя называется), и там можно выбрать тип аппроксимации "Полином" и задать степень полинома. Вуаля.
Не забудьте только напомнить Экселю, чтоб он отобразил на графике уравнение полинома.
Насчёт приведённости многочлена - не факт, что в произвольном случае это вообще возможно.
"Найти значения коэффициентов" называется - построить аппроксимирующий многочлен. Тупо вбиваете в один столбик все значения х, в другой столбик, соседний, - все соответствующие значения у. Потом выделяете оба столбика и строите график у (х), в панели "Диаграммы" (Charts) этот вид графика обозначен отдельными точками.
Когда график построен, надо на нём нажать правой кнопкой и выбрать из выпавшего меню опцию Trendline (фиг её знает, как она в русской версии Экселя называется), и там можно выбрать тип аппроксимации "Полином" и задать степень полинома. Вуаля.
Не забудьте только напомнить Экселю, чтоб он отобразил на графике уравнение полинома.
Насчёт приведённости многочлена - не факт, что в произвольном случае это вообще возможно.
Юля Макаренко
Автору нужно не регрессионное уравнение, а интерполяционное, причем весьма специфическое.
Юля Макаренко
Касательно приведенности многочлена: в общем случае факт, что это возможно, поскольку ранг матрицы системы совпадает с рангом расширенной матрицы.
Попробуйте поискать по возможностям Wolfram Alpha
Кратко, поскольку времени нет. Задача сводится к поиску интерполяционного многочлена Лагранжа с произвольным коэффициентом при старшей степени, но степенью на единицу ниже искомого. Как это понять? Выпишите систему для поиска коэффициентов и перенесите свободные члены, которые образуются при возведении аргумента в старшую степень, влево. Получится стандартная система для поиска интерполяционного многочлена Лагранжа степени (n-1). Правая часть - не столбец (а_1,...a_n), а уже измененный столбец с перенесенными свободными членами (а_1-1, а_2-2^n и т. д.) (проверьте!)
Дальше можно пользоваться любым ресурсом, который может это делать, например, тем же wolframalpha.com
Команда interpolating polynomial.
Например, для вашей задачи (изменю данные), если P(1)=2, P(2)=6
следует ввести https://www.wolframalpha.com/input/?i=interpolating+polynomial+calculator&assumption={"F",+"InterpolatingPolynomialCalculator",+"data"}+->"{2-1,+6-2^2}"
(Или копируйте сами всю гиперссылку полностью, или вводите команду interpolating polynomial calculator { 2-1, 6-2^2} - в фигурных скобках полный набор "поправленных" (на старшую степень) аргументов.
(Это формат команды для данных, заданных, как у вас, в последовательных натуральных точках 1, 2, 3..)
На выходе мы получаем многочлен x.
Это добавок к старшей степени (у нас она вторая).
Итоговый интерполяционный многочлен (приведенный) будет P(x)=x^2+x
Проверяем. P(1)=2, P(2)=6.
Детали разгребайте сами.
------
PS Собссно, как я сейчас вижу, ответ Άνθρωπος содержит буквально то же, я только сразу не осознала, синтаксис Octave мне незнаком.
Дальше можно пользоваться любым ресурсом, который может это делать, например, тем же wolframalpha.com
Команда interpolating polynomial.
Например, для вашей задачи (изменю данные), если P(1)=2, P(2)=6
следует ввести https://www.wolframalpha.com/input/?i=interpolating+polynomial+calculator&assumption={"F",+"InterpolatingPolynomialCalculator",+"data"}+->"{2-1,+6-2^2}"
(Или копируйте сами всю гиперссылку полностью, или вводите команду interpolating polynomial calculator { 2-1, 6-2^2} - в фигурных скобках полный набор "поправленных" (на старшую степень) аргументов.
(Это формат команды для данных, заданных, как у вас, в последовательных натуральных точках 1, 2, 3..)
На выходе мы получаем многочлен x.
Это добавок к старшей степени (у нас она вторая).
Итоговый интерполяционный многочлен (приведенный) будет P(x)=x^2+x
Проверяем. P(1)=2, P(2)=6.
Детали разгребайте сами.
------
PS Собссно, как я сейчас вижу, ответ Άνθρωπος содержит буквально то же, я только сразу не осознала, синтаксис Octave мне незнаком.
WolframAlpha умеет рассчитывать интерполяционный многочлен Лагранжа. Частный случай многочлена Лагранжа, более подходящий для арифметической прогрессии точек, называется интерполяционным многочленом Ньютона. Wolfram понимает и кортокий синтаксис для Ньютона.
"interpolating polynomial 1, 4, 9, 16"
Вам нужно построить Ньютона или Лагранжа для последовательности точек.
(1, P(1) - 1), (2, P(2) - 2^n), (3, P(3) - 3^n) и так далее, где P(1) и так далее - значения в заданных точках. Вычесть n-е степени предлагаю руками или автоматизировать отдельно.
Для громоздких решений таких систем придуман определитель Вандермонда.
"interpolating polynomial 1, 4, 9, 16"
Вам нужно построить Ньютона или Лагранжа для последовательности точек.
(1, P(1) - 1), (2, P(2) - 2^n), (3, P(3) - 3^n) и так далее, где P(1) и так далее - значения в заданных точках. Вычесть n-е степени предлагаю руками или автоматизировать отдельно.
Для громоздких решений таких систем придуман определитель Вандермонда.
Похожие вопросы
- Врёт ли калькулятор ? Есть ли в мире хоть один калькулятор, который неправильно считает ?
- Подскажите программу (калькулятор), который может проводить операции с сотнями тысяч знаков
- Гений Эйнштейн. Откуда он знал о таких вещах в своём веке, подтверждение которым находят только сейчас?
- Почему в минуте 60 секунд? Простой вопрос заставил перелопатить не один сайт, ответ нашел не сразу. Копипаст нежелателен
- А что это за железные шарики не природного происхождения, которые находят в шахтах Африки?
- найти наименьшее натуральное число, которое при делении на 2 дает остаток1,при делении на 3 остаток2,на 4 остаток 3,на 5
- Где можно найти информацию о учёных, которые открыли физический закон, но в историю попал другой человек?
- Так нашли доказательство теоремы Ферма, которое он сам придумал или нет?
- Ученые нашли абсолютно черную планету, которая отражает света меньше сажи. Есть предположения из чего она состоит?
- 1) существует ли многочлен у каторого один из коэфициентов равен 1/2011, а значения во всех целых точках - целые?2) из м