Вычисление полинома со степенью и коэффициентами в R - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу вычислить функцию, которая создает многочлен, если мы знаем степень и коэффициенты этого многочлена.

Итак, я хочу попросить пользователя указать степень и вектор скоэффициенты.С этой информацией я хочу вернуть полином.

Это то, что у меня есть сейчас

polynomial <- func{
    m = readline("What is the degree of the polynomial?")
    coefficients = readline("What are the coefficients of the polynomial?")

    a = as.vector(coefficients)

}

Может ли кто-нибудь помочь мне в этом?R должен рассматривать полином как вектор a = (a0, ..., am)

1 Ответ

0 голосов
/ 12 декабря 2018

Если вы просто хотите, чтобы показывал , что такое многочлен, вы можете использовать:

polynomial = function(){
    # Accept user input
    input_m = as.numeric(readline("Degree? "))
    input_coef = readline("Coefficients (separated by a single space): ")

    m = input_m
    # Split string
    coef = strsplit(input_coef, " ")[[1]]

    # Check for correct number of coefficients
    if (length(coef) != m + 1)
        stop("Incorrect number of coefficients for given m.")

    # Add "+" to non-first positive coefficients
    coef[-1][as.numeric(coef[-1]) > 0] = paste0("+", coef[-1][as.numeric(coef[-1]) > 0])
    zeros = as.numeric(coef) == 0

    # Make the polynomial
    output = paste0(coef[!zeros], "*x^", (m:0)[!zeros], collapse = "")
    # Replace "*x^0" with nothing
    output = sub("\\*x\\^0", "", output)

    return (output)
    }

> polynomial()
Degree? 3
Coefficients (separated by a single space): 5 -3 0 2.1
[1] "5*x^3-3*x^2+2.1"

Если вы хотите использовать этот многочлен как функцию в другом месте в R, вы 'было бы лучше использовать пакет polynom.

...