Задания для самостоятельной работы. 1. Вычислить значения для первых ста целых чисел:1..100

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)

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: