Nothing
## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE)
## ---- message=FALSE-----------------------------------------------------------
library(Ryacas)
## -----------------------------------------------------------------------------
(0.3 - 0.2) - 0.1
yac_str("(0.3 - 0.2) - 0.1") # decimal number does not
# always work well; often
# it is better to represent as
# rational number if possible
# (1/3 - 1/5) = 5/15 - 3/15 = 2/15
(1/3 - 1/5) - 2/15
yac_str("(1/3 - 1/5) - 2/15")
## -----------------------------------------------------------------------------
yac_str("1/3")
yac_str("N(1/3)")
yac_str("N(1/3, 1)")
yac_str("N(1/3, 200)")
## -----------------------------------------------------------------------------
pol <- "(x-1)^7"
p1 <- pol %>% yac_expr()
p1
p2 <- pol %>% y_fn("Expand") %>% yac_expr()
p2
## -----------------------------------------------------------------------------
eval(p1, list(x = 1.001))
eval(p2, list(x = 1.001))
## -----------------------------------------------------------------------------
# First try with 1.001:
pol_val <- paste0("WithValue(x, 1.001, ", pol, ")")
pol_val
yac_str(pol_val)
#... to get result symbolically, use instead the number as a fraction
pol_val <- paste0("WithValue(x, 1001/1000, ", pol, ")")
pol_val
yac_str(pol_val)
pol_val %>% y_fn("Denom") %>% yac_str()
pol_val %>% y_fn("Denom") %>% y_fn("IntLog", "10") %>% yac_str()
pol_val <- paste0("WithValue(x, 1001/1000, Expand(", pol, "))")
pol_val
yac_str(pol_val)
## ---- fig.height=4, fig.width = 6, fig.pos="H", fig.cap="solid line: $(x-1)^7$; dashed line: factorization of $(x-1)^7$.", echo=FALSE----
xval <- seq(.99, 1.01, by = 0.001)
p1_val <- sapply(xval, function(x) eval(p1, list(x = x)))
p2_val <- sapply(xval, function(x) eval(p2, list(x = x)))
plot(xval, p1_val, type = "l", xlab = "x", ylab = "y")
lines(xval, p2_val, lty = 2)
legend("bottomright",
legend = c(
parse(text = paste0("p[1]: y == ", as.character(p1))),
parse(text = paste0("p[2]: y == ", as.character(p2)))),
lty = c(1, 2),
cex = 0.7)
## -----------------------------------------------------------------------------
hilbert <- function(n) {
i <- 1:n
H <- 1 / outer(i - 1, i, "+")
return(H)
}
## -----------------------------------------------------------------------------
hilbert_sym <- function(n) {
mat <- matrix("", nrow = n, ncol = n)
for (i in 1:n) {
for (j in 1:n) {
mat[i, j] <- paste0("1 / (", (i-1), " + ", j, ")")
}
}
return(mat)
}
## -----------------------------------------------------------------------------
A <- hilbert(8)
A
B1 <- hilbert_sym(8)
B1
B <- ysym(B1) # convert to yacas symbol
B
## -----------------------------------------------------------------------------
Ainv <- solve(A)
Ainv
Binv1 <- solve(B) # result is still yacas symbol
Binv1
Binv <- as_r(Binv1) # convert to R numeric matrix
Binv
Ainv - Binv
max(abs(Ainv - Binv))
max(abs((Ainv - Binv) / Binv))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.