1. Вычислить значения для первых ста целых чисел:1..100.
2. Построить график функции на отрезке . ( – функция, возвращающая знак числа , т.е. +1 для положительных и –1 для отрицательных, в нуле – ноль).
3. Объявить в R функцию , которая возвращает два числа: целую и дробную части . Построить их графики на отрезке .
4. Объявить в R функцию и построить ее график на отрезке . Количество точек на отрезке взять равным 401. Будет ли данная функция непрерывна в нуле?
5. * Объявить в R функцию . Значение параметра принять по умолчанию равным . При возникновении неопределенности типа деления«ноль на ноль» функция должна возвращать сообщение об ошибке, а не «вылетать» с системным R–сообщением: «NaN». Проверить работоспособность функции на примерах и
Указание. В конструкциях оператора if (…) {…}else {…} полезно использоватьлогические операции: A&B (логическое "и") и A|B (логическое "или").
Ответ:
h(2,-2)
[1] 2
>h(6,3,2)
[1] 4
>h(0,0,5)
[1] "Функция не определена"
>h(-2,0,3)
[1] -Inf
6. * Раскрасить в различные цвета три ветви функции S(x) в разобранном примере 7.
|
|
Приложение
Ниже приведен код функции Radical, которая вычисляет радикалы (корни) произвольной целой степени. Для случая четной степени корня – функция возвращает положительное значение (арифметический корень). Функция поддерживает векторизованные обращения.
# Radical(x,Power,err) - функция корень n-ой степени. P.S. При четных n - арифметический корень
# x - аргумент корня, Power - степень корня (по умолчанию 3),
# err - допустимое отличие степени от целого числа (по умолчанию 10^(-9))
# by www.zadadaev.com
Radical <- function(x,Power=3,err=10^(-9))
{
if (abs(Power-round(Power,0))>err) {paste("Ошибка! Степень корня не целое число:",Power)} else
{
A <- (x>=0)
B <- (x<0)
if (abs(Power/2-round(Power/2,0))>0.1) # Нечетныйслучай
{
x[A] <- x[A]^(1/Power)
x[B] <- -(-x[B])^(1/Power)
Res<- x
return(x)
}
else #Случай четной степени
{
x[A] <- x[A]^(1/Power)
x[B] <- NA
Res<- x
return(x)
}
}
}
# Подключить к файлу можно командой:
# source("Radical.R") # При этом надо поместить файл Radical.R в рабочую директорию R
# Примеры обращения:
Radical(-8) # Кубический корень из -8
Radical(34.09,Power = 7) # Корень 7 степени из 34.09
Radical(64, 6) # Арифметический корень 6-ой степени из 64
Radical(-81, 2) # Арифметический корень из -81 (не определен)
Radical(4,8.03) # Ошибочная степень корня 8.03
# Иллюстрации
x<- seq(-1.5,1.5,length.out = 501)
plot(x,Radical(x, 1),type = "l",lwd = 2)
abline(h = 0, v = 0, col = "gray40")
lines(x,Radical(x, 2),type = "l",col="blue",lwd = 2)
lines(x,Radical(x, 3),type = "l",col="green",lwd = 2)
lines(x,Radical(x, 8),type = "l",col="red",lwd = 2)
lines(x,Radical(x, 15),type = "l",col="orange",lwd = 2)