トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Tips-octave

  OCTAVE

MATHLAB の オープンソース版??Maximaの場合は Tips-maxima

表示桁数

>> 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