Tips-octave
OCTAVE
MATHLAB の オープンソース版??Maximaの場合は Tips-maxima
インストール
https://www.gnu.org/software/octave/ https://www.gnu.org/software/octave/download.html
https://ftp.jaist.ac.jp/pub/GNU/
http://ftp.kddlabs.co.jp/pub/gnu/
表示桁数
>> pi pi = 3.1416
>> format long >> pi ans = 3.14159265358979
>> format >> pi ans = 3.1415
マンデルブロ
clear;
clf;
point=[-0.6,0];
length=3.3;
roop=15;
thresh=2;
cut=0.004*length;
% 領域計算
remin=point(1)-length/2;
remax=point(1)+length/2;
immin=point(2)-length/2;
immax=point(2)+length/2;
re=[remin:cut:remax];
im=[immin:cut:immax];
% 領域作成
M=size(re)(2);
N=size(im)(2);
F=zeros(M,N);
% 計算ループ
for m=1:M
for n=1:N
z=0;
c=re(m)+i*im(n);
for k=1:roop
z=z^2+c;
% z=(abs(real(z))+i*abs(imag(z)))^2+c;
if abs(z)>thresh
F(N+1-n,m)=k;
break
endif
if k==roop
F(N+1-n,m)=roop;
endif
endfor
endfor
endfor
% 表示
contourf(re,im,F)
axis([remin remax immin immax],"square")
xlabel("Re")
ylabel("Im")
% 結果保存
print('hogePlot','-dpng')
%% imwrite(F,"./hoge.png"); %% ではできない??なぜかな??
演算子
| 加算 | + | x+y |
| 減算 | - | x-y |
| かけ算 | * | x*y |
| 割算 | / | x/y |
| 剰余 | rem() | rem(x、y) |
| 乗数1 | ^ | x^y |
| 乗数2 | ** | x**y |
行列の項目毎の演算子
| 加算 | .+ | A+B |
| 減算 | .- | A-B |
| かけ算 | .* | A*B |
| 割算 | ./ | A/B |
| 乗数1 | .^ | A^B |
行列
A = [1 2 3;4 5 6;7 8 9] A(1, 2) = 1 # 1行2列を1にする # => # A = # 1 1 3 # 4 5 6 # 7 8 9
A(:, 2) = 5 # 2列のすべてを5にする # => # A = # 1 5 3 # 4 5 6 # 7 5 9
A(3, :) = [] # 3行目をすべて削除(行の削除) # => # A = # 1 5 3 # 4 5 6
for 文
for i=1:5 i endfor # => # j = 1 # j = 2 # j = 3 # j = 4 # j = 5
if文
if(i == 0 && j == 0) k elseif i = 1 j else i endif
方程式の解
# x + 2y = 3, # 2x + 5y = 4 の解 A = [1 2; 2 5] b = [3;4] A\b # 解を返す
ファンクション
function y = given_function (x) # 返り値 = 関数名 (引数) if (0 < x && x < 1) y = 1/x + exp(x); else y = 0; endif endfunction