blob: f60fee8125118353b1ca7f85c8b66a9e550dee50 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
function [y]= diric(x,n)
// Calculates the dirichlet function
// Calling Sequence
// [y]=diric(x,n)
// Parameters
// x: Real valued vector or matrix
// n: Real positive integer or complex integer
// Description
// y=diric(x,n) returns the dirichlet function values of parameter x.
// Examples
// 1. diric([1 2 3],3)
// ans= 0.6935349 0.0559021 -0.3266617
// 2. diric(1,2)
// ans= 0.8775826
funcprot(0);
rhs=argn(2);
if (argn(2)~=2) then
error ("Wrong number of input arguments.")
elseif (n <= 0 | ceil(n) ~= n) then
error("n must be an positive integer.");
else
y = sin(n.*x./2)./(n.*sin(x./2));
y(pmodulo(x,2*%pi)==0) = (-1).^((n-1).*x(pmodulo(x,2*%pi)==0)./(2.*%pi));
end
endfunction
|