Функция для вычисления значения полинома из скаляра или матрицы в R - PullRequest
0 голосов
/ 24 января 2019

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

Первый пример полинома 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 голосов
/ 24 января 2019
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 случая, теперь вы можете использовать функцию power для ее настройки, класс - это степень вашего полинома, c - это константа, а p - значение x. например: p (x): c + x + x ^ 2 + x ^ 3

edit: аргументы математической функции теперь другие, во-первых, это степень полинома, во-вторых, скаляр или матрица. например: математика (2,2) = 7

...