%----------------- MATLABソース -----------------%
y = randn(10000,1);
hist(y,60); %ヒストグラム
title('ヒストグラム');
xlabel('X');
ylabel('Y');
grid on;
%3次元グラフの視点の指定
view(90,90); % AZ=90, EL=90
%----------------- MATLABソース -----------------%
実行の結果
%----------------- MATLABソース -----------------%
y = randn(10000,1);
hist(y,60); %ヒストグラム
title('ヒストグラム');
xlabel('X');
ylabel('Y');
grid on;
%3次元グラフの視点の指定
view(90,90); % AZ=90, EL=90
%----------------- MATLABソース -----------------%
%----------------- MATLABソース -----------------%
for t=0:0.02:4*pi;
x=sin(t)*10;
y=cos(t)*10;
plot(t,x,'.b',t,y,'.k','MarkerSize',30);
xlim([0 2*pi]);
ylim([-10 10]);
grid on;
% 描画を強制更新
drawnow
end
%----------------- MATLABソース -----------------%
%----------------- MATLABソース -----------------%
syms t s a;
f= {
t^4 ;
1/sqrt(s) ;
exp(-a*t) ;
};
N = length(f);
for i=1:N
L = laplace(f{i}); %ラプラス変換
disp(f{i});
disp('ラプラス変換後');
disp(L);
disp('----------------------------------');
end
%----------------- MATLABソース -----------------%
t^4
ラプラス変換後
24/s^5
----------------------------------
1/s^(1/2)
ラプラス変換後
(pi/t)^(1/2)
----------------------------------
exp(-a*t)
ラプラス変換後
1/(s+a)
----------------------------------
%----------------- MATLABソース -----------------%
syms w
F = {
exp(-abs(w)) ;
2*exp(-abs(w))-1 ;
};
N = length(F);
for i=1:N
f = ifourier(F{i}); %逆フーリエ積分変換
disp(F{i});
disp('逆フーリエ積分変換');
disp(simple(f));
disp('----------------------------------');
end
%----------------- MATLABソース -----------------%
実行の結果exp(-abs(w))
逆フーリエ積分変換
1/(1+x^2)/pi
----------------------------------
2*exp(-abs(w))-1
逆フーリエ積分変換
-dirac(x)+2/(1+x^2)/pi
----------------------------------
%----------------- MATLABソース -----------------%実行の結果
syms x v;
f= {
exp(-x^2) ;
exp(-abs(x)) ;
x*exp(-abs(x)) ;
sin(x)*exp(-x^2) ;
};
N = length(f);
for i=1:N
F = fourier(f{i}); %フーリエ積分変換
disp(f{i});
disp('フーリエ積分変換後');
disp(F);
disp('----------------------------------');
end
%----------------- MATLABソース -----------------%
exp(-x^2)
フーリエ積分変換後
pi^(1/2)*exp(-1/4*w^2)
----------------------------------
exp(-abs(x))
フーリエ積分変換後
2/(1+w^2)
----------------------------------
x*exp(-abs(x))
フーリエ積分変換後
-4*i/(1+w^2)^2*w
----------------------------------
sin(x)*exp(-x^2)
フーリエ積分変換後
-i*pi^(1/2)*sinh(1/2*w)*exp(-1/4*w^2-1/4)
----------------------------------
%----------------- MATLABソース -----------------%
r = 1;
c = 2;
A = [
%1 2 3 4
0 1 0 1; % 1 ノード1は、ノード2,3に隣接ため、1
1 0 1 0; % 2 ノード2は、ノード1,3に隣接ため、1
0 1 0 1; % 3 ノード3は、ノード2,4に隣接ため、1
1 0 1 0 % 4 ノード4は、ノード1,3に隣接ため、1
];
xy = [
1 3; % ノード1の座標
2 1; % ノード2の座標
3 3; % ノード3の座標
2 5 % ノード4の座標
];
subplot(r,c,1);
gplot(A,xy,'.--');
text(xy(:,1)+0.1,xy(:,2)+0.05,('1234')', 'HorizontalAlignment','center','color','red');
title('gplot');
subplot(r,c,2);
spy(A); %行列 S のスパースパターンをプロットします。
title('spy');
print('-dpng','-r100','gplot.png');
%----------------- MATLABソース -----------------%
%----------------- MATLABソース -----------------%
n=60;
m=1000;
Z=zeros(m); %m行m列の零の行列の作成
C=X+i*Y;
for k=1:n;
Z=Z.^2+C;
W=exp(-abs(Z));
end
colormap jet(256); %カラールックアップテーブル
pcolor(W); %擬似カラー(チェッカーボード)プロット
shading flat; %カラーシェーディングモード
axis('square','equal','off');
print('-dpng','-r200','mandel.png');
%----------------- MATLABソース -----------------%
%----------------- MATLABのソース -----------------%
%--- この例題はMATLABのデモに参考したものです。---%
r = 2;
c = 2;
%過去300年にわたって太陽の黒点活動
load sunspot.dat;
year = sunspot(:,1);
wolfer = sunspot(:,2);
subplot(r,c,1);
plot(year,wolfer);
grid on;
title('太陽の黒点活動')
xlabel('年');ylabel('Wolfer数');
Y = fft(wolfer); %離散フーリエ変換
N = length(Y);
Y(1) = [];
power = abs(Y(1:N/2)).^2;
nyquist = 1/2;
freq = (1:N/2)/(N/2)*nyquist;
subplot(r,c,2);
plot(freq,power), grid on
xlabel('周期/年数')
title('ピリオドグラム')
period = 1./freq;
subplot(r,c,3);
plot(period,power), axis([0 40 0 2e7]), grid on
ylabel('パワー');
xlabel('年数/周期')
[mp,index] = max(power);
period(index)
print('-dpng','-r100','fft_sunspot.png');
%----------------- MATLABのソース -----------------%
%----------------- MATLABのソース -----------------%
% 2007/11/01~2007/11/19のドル・円レートデータ
usdjpy = {
% 日付 始値 高値 安値 終値
'2007/11/01' 115.44 115.92 114.48 114.67
'2007/11/02' 114.67 115.46 114.38 114.85
'2007/11/05' 114.78 114.82 114.02 114.54
'2007/11/06' 114.54 114.78 114.28 114.72
'2007/11/07' 114.72 114.76 112.63 112.64
'2007/11/08' 112.64 113.37 112.25 112.67
'2007/11/09' 112.67 112.87 110.50 110.70
'2007/11/12' 110.28 110.79 109.14 109.43
'2007/11/13' 109.43 111.00 109.43 110.92
'2007/11/14' 110.92 111.75 110.76 111.32
'2007/11/15' 111.32 111.68 110.23 110.30
'2007/11/16' 110.30 111.35 109.78 111.09
'2007/11/19' 110.88 111.07 109.77 109.81
};
ymd = datenum(strvcat(usdjpy{:,1}),'yyyy/mm/dd');
open = [usdjpy{:,2}]';
high = [usdjpy{:,3}]';
low = [usdjpy{:,4}]';
clos = [usdjpy{:,5}]';
%時系列オブジェクトの取り込む
data = fints(ymd,[open high low clos],{'OPEN','HIGH','LOW','CLOSE'});
candle(data); %キャンドルスティックチャート
axis tight
%日付を書式化した目盛りのラベルを付ける
datetick('x','mm/dd');
title('ドル・円のチャート'); xlabel('日付'); ylabel('レート');
grid on;
print('-dpng','-r100','usdjpy_chart.png');
%----------------- MATLABのソース -----------------%
%----------------- MATLABのソース -----------------%
%----------------- main_rossler.m -----------------%
function main_rossler
r = 2;
c = 2;
[t,xyz] = ode45('rossler',[0,500],[4;0;0]);
x = xyz(:,1); xmin = min(x); xmax = max(x);
y = xyz(:,2); ymin = min(y); ymax = max(y);
z = xyz(:,3); zmin = min(z); zmax = max(z);
aviobj = avifile('rossler.avi');
for i=1:length(t)
subplot(r,c,1);
plot3(x(1:i),y(1:i),z(1:i),...
x(1),y(1),z(1),'or',...
x(i),y(i),z(i),'ob');
axis([xmin xmax ymin ymax zmin zmax]);
xlabel('x'); ylabel('y'); zlabel('z');
subplot(r,c,2);
plot(x(1:i),y(1:i),...
x(1),y(1),'or',...
x(i),y(i),'ob');
axis([xmin xmax ymin ymax]);
xlabel('x'); ylabel('y');
subplot(r,c,3);
plot(x(1:i),z(1:i),...
x(1),z(1),'or',...
x(i),z(i),'ob');
axis([xmin xmax zmin zmax]);
xlabel('x'); ylabel('z');
subplot(r,c,4);
plot(y(1:i),z(1:i),...
y(1),z(1),'or',...
y(i),z(i),'ob');
axis([ymin ymax zmin zmax]);
xlabel('y'); ylabel('z');
%pause(0.01);
%F(i) = getframe(GCF);
F = getframe(GCF);
aviobj = addframe(aviobj,F);
end
aviobj = close(aviobj);
%movie2avi(F,'rossler.avi');
end
%----------------- main_rossler.m -----------------%
%----------------- rossler.m -----------------%
function xyz = rossler(t,y)
a = 0.2;
b = 0.2;
c = 6.0;
xyz = [ -y(2) - y(3)
y(1) + a*y(2)
b + y(1)*y(3) - c*y(3) ];
end
%----------------- rossler.m -----------------%
%----------------- MATLABのソース -----------------%
%----------------- MATLABソース -----------------%
%----------------- lorenz_main.m -----------------%
function main
r = 2;
c = 2;
[t,xyz] = ode45('lorenz',[0,30],[5;3;1]);
x = xyz(:,1); xmin = min(x); xmax = max(x);
y = xyz(:,2); ymin = min(y); ymax = max(y);
z = xyz(:,3); zmin = min(z); zmax = max(z);
for i=1:length(t)
subplot(r,c,1);
plot3(x(1:i),y(1:i),z(1:i),...
x(1),y(1),z(1),'or',...
x(i),y(i),z(i),'ob');
axis([xmin xmax ymin ymax zmin zmax]);
xlabel('x'); ylabel('y'); zlabel('z');
subplot(r,c,2);
plot(x(1:i),y(1:i),...
x(1),y(1),'or',...
x(i),y(i),'ob');
axis([xmin xmax ymin ymax]);
xlabel('x'); ylabel('y');
subplot(r,c,3);
plot(x(1:i),z(1:i),...
x(1),z(1),'or',...
x(i),z(i),'ob');
axis([xmin xmax zmin zmax]);
xlabel('x'); ylabel('z');
subplot(r,c,4);
plot(y(1:i),z(1:i),...
y(1),z(1),'or',...
y(i),z(i),'ob');
axis([ymin ymax zmin zmax]);
xlabel('y'); ylabel('z');
pause(0.01);
F(i) = getframe(GCF);
end
movie2avi(F,'lorenz.avi');
end
%----------------- lorenz_main.m -----------------%
%----------------- lorenz.m -----------------%
function xyz = lorenz(t,y)
s = 10;
b = 8/3;
r = 28;
xyz = [ -s .* y(1) + s .* y(2)
r .* y(1) - y(2) - y(1) .* y(3)
y(1) .* y(2) - b .* y(3) ];
end
%----------------- lorenz.m -----------------%
%----------------- MATLABソース -----------------%
%----------------- MATLABソース -----------------%
function main()
N = 128*16;
cx = 0.2; cy = 0.2;
sx = 0; sy = 0;
x(1) = 0; y(1) = 0;
for i=2:N
[dx dy] = randwalk;
sx = sx + cx * dx;
sy = sy + cx * dy;
x(i) = sx;
y(i) = sy;
end
minx = min(x); maxx = max(x);
miny = min(y); maxy = max(y);
for i=1:N-1
plot(x(1:i),y(1:i),'k',x(i),y(i),'o',x(1),y(1),'or');
axis equal;
axis([minx maxx miny maxy]);
pause(0.01)
F(i) = getframe;
end
movie2avi(F,'brownian.avi');
end
function [dx dy] = randwalk
dx = rand(1)-0.5;
dy = rand(1)-0.5;
end
%----------------- MATLABソース -----------------%
%----------------- MATLABソース -----------------%
function main()
N = 128*16;
cx = 0.1; cy = 0.1;
sx = 0; sy = 0;
x(1) = 0; y(1) = 0;
for i=2:N
[dx dy] = randwalk;
sx = sx + cx * dx;
sy = sy + cx * dy;
x(i) = sx;
y(i) = sy;
end
minx = min(x); maxx = max(x);
miny = min(y); maxy = max(y);
for i=1:N-1
plot(x(1:i),y(1:i),'k',x(i),y(i),'o',x(1),y(1),'or');
axis equal;
axis([minx maxx miny maxy]);
pause(0.01)
F(i) = getframe;
end
movie2avi(F,'randomwalk.avi');
end
function [dx dy] = randwalk
w=0;
while w==0
w=rand(1)-0.5;
w = sign(w);
end
dx = 0; dy = 0;
if ceil(2*rand(1)) == 1
dx = w;
else
dy = w;
end
end
%----------------- MATLABソース -----------------%