#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
. Я расширил свой ответ.