# normTVinv2

Computes the norm induced by the inner product innergrad.

## Contents

- Syntax
- Description
- Input Arguments
- Output Argument
- More About
- References
- See Also
- Code

## Syntax

    n = normTVinv2(gus,seti)

## Description

`n = normTVinv2(gus,seti)` computes the norm on gradient `gus`, which is generated by the inner product `innergrad`.

## Input Arguments

The input arguments are described in normTVinv1.html:

- gus
- seti.dim
- seti.nInv
- seti.dVinv

## Output Argument

- n : result of the norm.

## More About

The norm is generated by the inner product `innergrad`, i.e.

,

and is not (normTVinv1.html), see [1, Sec. 4.5 above eq. (59)].

`normTVinv2` uses `rNorm = 2`, apart from that it is similar to `normTVinv1`.

## References

- [1] Florian Bürgel, Kamil S. Kazimierski, and Armin Lechleiter. A sparsity regularization and total variation based computational framework for the inverse medium problem in scattering. Journal of Computational Physics, 339:1-30, 2017. URL: https://doi.org/10.1016/j.jcp.2017.03.011.

## See Also

- innergrad.html
- normTVinv1.html

## Code

    function n = normTVinv2(gus,seti)
    % Old name: n = \|\nabla u\|_{TV,2}

    absgu = normTVinvAux(gus,seti);

    rNorm = 2;

    if seti.dim == 2
        n = (sum(sum(absgu.^rNorm))*seti.dVinv).^(1/rNorm); % \|grad(u)\|_{TV,2} =  \sqrt{ \sum_i,j | (grad(u))_i,j |^2 }
    elseif seti.dim == 3
        n = (sum(sum(sum(absgu.^rNorm)))*seti.dVinv).^(1/rNorm);
    end

    end