Learn R Programming

inteq (version 1.0)

volterra_solve: Solve a Volterra equation of the first kind

Description

Solve a Volterra equation of the first kind

Usage

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

Value

data-frame with evaluation points 'sgrid' and calculations '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) {
        cos(t-s)
}
trueg <- function(s) {
    (2+s**2)/2
}

res <- volterra_solve(k,a=0,b=1,num=1000)

plot(
    res$sgrid, res$ggrid,
    type = "l",
    col = "blue",
    xlim = c(0, 1),
    #ylim = c(-1, 1),
    xlab = "s",
    ylab = "g(s)",
    main = "Volterra Equation Solution first kind"
)
# add the true solution
lines(res$sgrid, trueg(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