多项式作为R中的函数

时间:2018-04-05 09:08:11

标签: r function loops polynomials

如果问题很愚蠢/在其他地方得到解答,那么提前抱歉/ ...我找不到任何好的解决方案。

基于动力系列的想法我有

A)长度为n的实系数向量,它来自另一个循环,可能相当长,但我们假设它很简单,例如,

    <!-- Youtube video loop playlist -->
<script>
        var videos = ["https://www.youtube.com/embed/9bZkp7q19f0", "https://www.youtube.com/embed/dQw4w9WgXcQ", "https://www.youtube.com/embed/CzJ-h7W1hVw"];
        window.onload = function () {
            var playerDiv = document.getElementById("random_player");
            var player = document.createElement("IFRAME");
            var randomVideoUrl = videos[Math.floor(Math.random() * videos.length)];
            player.setAttribute('width', '528');
            player.setAttribute('height', '330');
            player.setAttribute('src', randomVideoUrl);
            playerDiv.appendChild(player);
        };
        onStateChange: function(e){
            var id = 'qzZuBWMnS08';

            if(e.data === YT.PlayerState.ENDED){
                player.loadVideoById(videos);
            }
        }
    </script>
<div id="random_player"></div>

B)一个真正的中心,例如

a<-1:10

我想定义多项式(在我的例子中)

c<-3

作为一种功能。不幸的是

1)函数a[1]+a[2]*(x-3)+ a[3]*(x-3)^2+ .... + a[10]*(x-3)^9 只允许中心0(据我所知),所以我不能使用它和

2)系数列表可能很长,太长而无法手工完成

3)我以后可能需要一个多变量版本。

我更喜欢使用循环来定义这个“有限幂级数”,但我不知道如何以干净的方式实现循环和函数的总和(我也没有找到它)。

像(非常天真)的东西

as.polynomial(a)

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:3)

我认为这有效

my_polynomial = function(x) {
  sum(sapply(seq_along(a), function(ii) a[ii] * (x - c) ^ (ii - 1L)))
}

答案 1 :(得分:0)

仅供将来参考。要使用包多项式更改中心,请使用change.origin

例如:

change.origin(as.polynomial(a),3)