Как назначить ортогональные многочлены функциям?

#r #function #math #plot #polynomials

Вопрос:

Я пытаюсь построить ортогональные многочлены Лагерра для присвоения класса. Я думал создать 10 функций, каждой функции присваивается определенный полином по индексу i.

  for (i in 1:10){  opl[i] lt;- function(x) {opl[3]} }  

а затем используйте curve() его для построения графика. Но это не работает. laguerre.polynomials() функция выдает вам полиномы в виде списка, и я думаю, что проблема в том, что мой цикл не может извлечь элементы из списка по индексу и назначить их функции.

Есть какие-нибудь идеи о том, как это сделать?

Ответ №1:

Вы можете преобразовать многочлены в функции , используя as.function , например,

 library(orthopolynom) library(ggplot2)  opl lt;- laguerre.polynomials(10)  opl_functions lt;- lapply(opl, as.function)  # x interval x lt;- seq(-1, 1, 0.05)  # plot the first two polynomials ggplot(data.frame(x), aes(x = x, y = y))   # basic graphical object  geom_line(aes(y = opl_functions[[1]](x)), colour = "red")   # first layer  geom_line(aes(y = opl_functions[[2]](x)), colour = "blue") # second layer  # and so on ...  

I-й элемент opl_functions является тогда i-м многочленом, в зависимости от x . Затем это можно использовать для построения многочленов.

Комментарии:

1. Спасибо! и как мне построить все это в одном сюжете?

2. Такой многослойный сюжет может быть реализован с помощью ggplot . Я расширил свой ответ.