根据R

时间:2019-01-24 14:43:48

标签: r function math polynomial-math

我需要帮助来创建函数(数学)以计算一些基本操作。的确,我是一个初学者,我真的不知道该怎么做。 我的任务是创建函数,该函数可以从标量或矩阵中取多项式的值。

第一个示例多项式为p1 = 1 + t,第二个多项式为p2 = 1+ t + t ^ 2

a <- matrix( c( 2, 0, 0, 1), 2, 2)

p1 <- c( 1, 1)
p2 <- c(1, 1, 1)

我的预期结果:

使用方法函数从标量计算多项式的值:

math( x1 = p1, x2 = 0)
output: 1
math( x1 = p1, x2 = 2)
output: 3
math( x1 = p2, x2 = 2)
output: 7
math( x1= p2, x2 = 1)
output: 3

使用方法函数从矩阵中计算多项式的值:

math( x1 = p1, x2 = a)
     [,1] [,2]
[1,]    3    0
[2,]    0    2

math( x1= p2, x2 = a)

     [,1] [,2]
[1,]    7    0
[2,]    0    3

1 个答案:

答案 0 :(得分:-1)

power <- function(grade,p){
  c=1
  b=0

  for (i in 1:grade) {
    b=p*b+p
    i=i+1

  }
return(c+b)}


math <- function(a,b){
 if(class(b)=="numeric"){
  return(power(a,b))

}
  if(class(b)=="matrix"){matrix= matrix(0,nrow(b),nrow(b))
  for (i in 1:nrow(matrix)) {
    matrix[i,i] <- power(a,b[i,i])
  }
    return(matrix)}}

对不起,我认为问题只有2种情况,现在您可以使用函数幂对其进行调整,等级是您多项式的次数,c是常数,p是x的值  例如:p(x):c + x + x ^ 2 + x ^ 3

edit:数学函数参数现在有所不同,首先是多项式的次数,其次是标量或矩阵。例如:math(2,2)= 7