在数学中,魏尔斯特拉斯函数(Weierstrass function)是一类处处连续而处处不可导的实值函数。这个函数得名于它的发现者卡尔·魏尔斯特拉斯。 [1]
历史上,魏尔斯特拉斯函数是一个著名的数学反例。在此之前,数学家认为除了少数特殊点以外,连续函数在每一点处都可导。魏尔斯特拉斯函数是第一个被发现的处处连续而处处不可导的函数,说明了所谓的“病态”函数的存在性,改变了当时数学家对连续函数的看法,具有重要意义。
魏尔斯特拉斯函数_百度百科baike.baidu.comclear all;
clc;
close all
lambda =5;
H= 0.5;
N=10000;
[t, WCF] = Generate_WCF(lambda, H, N)
figure
h= plot(t,WCF,'b','linewidth',1);
hold on
xlabel('t')
ylabel('y')
grid on
hold on
h= plot(t(end-3000:end),WCF(end-3000:end),'r','linewidth',1);
h=fill([0 1 1 0],[ 1 1 4 4],'g')
h.FaceAlpha=0.1
h=fill([0 1 1 0],[ 1 1 -1 -1],'b')
h.FaceAlpha=0.1
set(gca,'linewidth',0.8,'fontsize',14)
axis([0,1 -1 4])
title('原图')
#此处省略一小部分,完整代码欢迎去公众号matlab-learner下载。
function [t, WCF] = Generate_WCF( lambda, H, N)
t = linspace(0,1,N); %N samples.
Kmax = 10;
aux = NaN(1,Kmax);
aux2 = NaN(Kmax,N);
for k = 1:Kmax
aux(k) = lambda^((-1)*(k*H));
aux2(k,:) = aux(k).*cos(2*pi*(lambda^k)*t);
end
WCF = sum(aux2);
end