Skip to content

Instantly share code, notes, and snippets.

FTup[x_, elemProd_] := Product[Sinc[x 2^-k], {k, 1, elemProd}]
up[x_, elemProd_, elemSum_] :=
If[-1 <= x && x <= 1,
0.5 + Sum[FTup[k \[Pi], elemProd] Cos[\[Pi] k x], {k, 1, elemSum}],
0]
elemProd = 4;
elemSum = 20;
Plot[{up[x, elemProd, elemSum]}, {x, -1 - 0.025, 1 + 0.025},
@olekravchenko
olekravchenko / BizzareStatement.nb
Last active May 6, 2016 06:00
BizzareStatement
(*Fabius Function*)
Fb[x_] := up[x - 1, 5, 30]
(*Statement Function*)
GFb[a1_, a2_, b_] := a2 - a1 + b (Fb[a1/b] - Fb[a2/b]) // Evaluate
(*Samples*)
GFb[2, 13, 30];
GFb[2, 7, 18];
(*Search*)
tbl = Table[{b, GFb[2, 9, b]}, {b, 15, 25, 1}];
@olekravchenko
olekravchenko / AsymetricAtomicFunction.nb
Created May 12, 2016 16:59
AsymetricAtomicFunction
(*FDE:
f'(x) = 2.25*(3f(3x) - 2f(3x-1) - f(3x-2)),
supp f = [0,1]
*)
(*Fourier Transform of f(x)*)
fFt[\[Omega]_] :=
Product[1/4 (3 - 2 Exp[-I \[Omega] 3^-n] - Exp[-2 I \[Omega] 3^-n])/(
I \[Omega] 3^-n), {n, 1, 4}]
(*Fourier Series of f(x)*)
f[x_] := 0.5 +
@olekravchenko
olekravchenko / eup.nb
Created June 16, 2016 20:51
ExponentialAtomicFunction
(*Exponential atomic function*)
(*Fourier Transform*)
Sinch[x_] := If[x == 0, 0, Sinh[x]/x];
FTeup[a_, t_] :=
Product[(Sinch[Log[a]/2])^-1 Sinch[Log[a]/2 - I t /2^j], {j, 1, 4}];
(*Eup AF via Fourier Series*)
eup[a_, x_] :=
If[-1 <= x <= 1,
(*
Author: Oleg Kravchenko;
Date: 18/6/16;
*)
ClearAll["Global`*"]
(*eup(x) function via convolution*)
eUP[k_, x_] := 2^k UnitBox[2^k x] Exp[x]
c1eUP[x_] := Convolve[eUP[0, s], eUP[1, s], s, x] // Evaluate
@olekravchenko
olekravchenko / upQPochhammer.nb
Created September 17, 2016 11:49
QPochhammer vs up
f[x_] := 1/2 - (4/\[Pi]) Arg[QPochhammer[I (2 x - 1)]]
upFT[t_] := Product[Sinc[t 2^-k], {k, 1, 5}]
up[x_] := 1/2 + Sum[Cos[\[Pi] k x] upFT[\[Pi] k], {k, 1, 25}]
Column@{
Plot[{up[x - 1], f[x]}, {x, 0, 1}, PlotStyle -> Thick,
ImageSize -> 450],
Plot[Abs@{up[x - 1] - f[x]}, {x, 0, 1}, PlotStyle -> Thick,
ImageSize -> 450]
}
@olekravchenko
olekravchenko / CIP_deriv.py
Created December 7, 2016 03:43
Derivation of the coefficients in CIP method
from sympy import *
#from sympy import Symbol, solve
from sympy.solvers.solveset import linsolve
# Set symbolic parameters
x, a, b, c, d, h, ui, ui1, gi, gi1 = symbols('x, a, b, c, d, h, ui, ui1, gi, gi1')
# Set interpolation polynomials
f = a + b*x + c*x**2 + d*x**3
df = f.diff(x)
# Set constrains
@olekravchenko
olekravchenko / BasisFunctionsComparison.nb
Created September 26, 2016 08:08
Cubic B-spline vs fup_n(x) function
B3[x_] := BSplineBasis[3, 0.25 (x + 2)]
FTfupn[x_, n_, elemProd_] :=
Sinc[x/2]^(n + 1) Product[Sinc[x 2^-i], {i, 2, elemProd}]
fupn[x_, n_, elemProd_, elemSum_] :=
If[-((n + 2)/2) <= x && x <= (n + 2)/2,
2/(n + 2) (0.5 +
Sum[FTfupn[ (2 k \[Pi])/(n + 2), n,
elemProd] Cos[(2 k \[Pi])/(n + 2) x], {k, 1, elemSum}]), 0]
Plot[{B3[x], fupn[x, 2, 4, 15]}, {x, -2, 2},
@olekravchenko
olekravchenko / upFt.nb
Created April 14, 2018 19:46
Fourier Transform of up(x) Rvachev's function zeroes unimodality
upFt[t_, n_] := Product[Sinc[t 2^-k], {k, 1, n}]
Plot[{Sinc[2 \[Pi] t], upFt[2 \[Pi] t, 1], upFt[2 \[Pi] t, 2],
Cos[2 \[Pi] t]}, {t, -3.05, 3.05}, PlotRange -> All,
PlotStyle -> Thick,
PlotLegends -> {"sinc(2\[Pi]t)", "sinc(\[Pi]t)",
"sinc(\[Pi]t)sinc(\[Pi]t/2)", "cos(x)"},
ImageSize -> Large]
@olekravchenko
olekravchenko / do-loops-fortran
Created October 30, 2019 07:12
Minimal reprodusible example
program gdns2s_strat_new
use omp_lib
parameter (ni=998)
parameter (nj=1250)
!implicit double precision (a-h,o-z)
real (kind=8), allocatable, dimension(:) :: x, y, ylt, roaxe, paxe
real (kind=8), allocatable, dimension(:,:) :: ro, u, v, es, rox, ux, vx, esx, roy, uy, vy, esy, dksi