会社でMatlabを使うことがたまにあって、文法とか覚えるのに色々弄れるiPhone版とかないかなぁと思って調べたらあるじゃないですか!しかも無料で!
まぁ、無料なのは作成したファイルが250MBまでのようですが、練習するだけなら十分です。(^^)
そこで練習として、複数点からn次近似するプログラムを作ってみようと思います。
近似方法として行列を使った方法をやってみます。
n次近似も同様にすればOKです。
以下のプログラムを適当なファイル名(拡張子.m)で保存します。
clear;clc;
%各行(x,y)の行列取得
B=readmatrix('ExcelData.xlsx');
B=B(:,2:end)
plot(B(:,1),B(:,2),'*');
%N次近似
prompt='n次近似(n>=1) n=?';
N=input(prompt)
a=[]; %係数a[]
A=[]; dataNum=size(B,1);
for i=1: dataNum
A(i,1)=1;
for j=1:N
A(i,j+1)= B(i,1)^j;
end
y(i,1)=B(i,2);
end
AtA=A.'*A;
Aty=A.'*y;
ab=inv(AtA)*Aty;
for i=1:N+1
a(i,1)=ab(i,1);
end
a(:,1)
%x軸最大
xMax=max(B(:,1)); range=10;
xMax=ceil(xMax/range)*range;
xx=0:xMax; yy=0;
for i=1:N+1
yy=yy+a(i,1)*xx.^(i-1);
end
plot(xx,yy); hold on
plot(B(:,1),B(:,2),'*'); hold off
また、元データをExcelData.xlsxというファイル名でカレントディレクトリに保存します。
mファイル以外のファイルの保存方法は後述します。
ここで使ったExcelData.xlsxは以下のようなファイルになってます。
▼アプリ上部の実行ボタンをタップ
▼読み込んだExcelData.xlsxが表示されるので、グラフを見たければ右下のグラフアイコンか右上のグラフボタンをタップ
▼グラフが表示されるので、完了をタップして戻る
▼3次近似の場合、3を入力
▼3次近似式の各係数が表示されるので、グラフアイコンかグラフボタンをタップ
▼3次近似のグラフが表示されます。
▼ブラウザーでwww.mathworks.com/loginにアクセスしてMATLAB Driveにログインして、保存したいフォルダをタップ
▼矢印ボタンをタップしてファイルをタップ
▼ファイルを選択をタップ
▼ブラウズをタップしてアップロードしたいファイルを選択
▼指定したフォルダにアップロードされました。
Matlabというだけあって、行列(Matrix)の演算は簡単に出来ますね。グラフ化も簡単でした。
iPhoneだけで出来るというのがいいですね。
今後ももっと色々練習してみようと思います。(^^)
happyChappy(@happyChappy1115)でした。
Sponsored Link
Posted from するぷろ for iOS.