Learn R Programming

inteq (version 1.0)

volterra_solve2: Solve a Volterra equation of the second kind

Description

Solve a Volterra equation of the second kind

Usage

volterra_solve2(
  k,
  f = function(x) x,
  a = 0,
  b = 1,
  num = 1001L,
  method = c("trapezoid", "midpoint")
)

Value

data-frame with evaluation points 'sgrid' and calculated values 'ggrid'

Arguments

k

kernel function of two time scales

f

left hand side (free) function with f(a)=0

a

lower bound of the integral

b

upper bound of the integral

num

integer for the number of evaluation points

method

string for the method

Examples

Run this code
k <- function(s,t) {
        0.5 * (t-s)** 2 * exp(t-s)
}
free <- function(t) {
    0.5 * t**2 * exp(-t)
}
true <- function(t) {
    1/3 * (1 - exp(-3*t/2) * (cos(sqrt(3)/2*t) + sqrt(3) * sin(sqrt(3)/2*t)))
}

res <- volterra_solve2(k,free,a=0,b=6,num=100)

plot(
    res$sgrid, res$ggrid,
    type = "l",
    col = "blue",
    xlim = c(0, 6),
    #ylim = c(-1, 1),
    xlab = "s",
    ylab = "g(s)",
    main = "Volterra Equation Solution second kind"
)
# add the true solution
lines(res$sgrid, true(res$sgrid), col = "red", lty = 2)
legend( 
    "topright",
    legend = c("Estimated Value", "True Value"),
    col = c("blue", "red"),
    lty = c(1, 2)
)

Run the code above in your browser using DataLab