数学月間の会SGKのURLは,https://sgk2005.org/
数学月間の会SGKのURLは,https://sgk2005.org/
■お手持ちのスマホやタブレットにMATLABをインストール(無料)して参加されると,実習ができます.
スマホやタブレット(ipadでもandroidでもOK)にMATLABをインストールします.私(谷)は,パソコンwindowsで,Scilab(無料,MATLAB互換)を使っていますが,高価なMATLABがスマホで無料とは知りませんでした.
スマホにインストールするMATLABアプリは,スマホでGooglePlayなどから探します(windows版ではありません).
このとき,MathWorksアカウント(無料)を作ります.これでクラウドにMatlab driveが持てます.
Matlab driveにアップロードしたファイルは,Matlabで使えます.Matlab driveはクラウドにあり,パソコンからでもスマホからでも使えます.
学生さんはスマホを持っていますから,MATLABを数学(特に,行列)の学習に利用できます.
(ただし,MATLABはクラウドを使いますからインターネットの環境は必要です)
■山崎先生ZOOM講演の進め方:
①スマホで数学月間の会HPを開く
http://sgk2005.saloon.jp/bbses/bbs_articles/view/123/7494b7293580efbec898d504b9c819a7?frame_id=155
プログラムの必要部分をコピーする.
②MATLABアプリを開き,>>の位置にコピーしたプログラムをペーストする.
実行
このとき,データファイルのあるディレクトリに移動(cdやlsなどのunixコマンドを使う)して実行する.
(注意)ZOOM講演を視聴するのは,スマホとは別のパソコンなどがあるとベストです.1台のスマホで,ZOOMの視聴,数学月間ホームページを開く,MATLABを使うの3役をさせることも可能ではありますが,操作が煩雑です.
クラウドにあるMATLAB Driveにサインインすることで,データをパソコンでもスマホでも共有できます.ダウンロードしたファイルをクラウドの置けば,MATLABのパスを気にせずにアクセスできます.
■ポケモンステータスファイル数値解析用
ポケモン800種のステータスデーター
PKAtk.txt
PKDef.txt
PKGene.txt
PKHP.txt
PKName.txt
PKSpAtk.txt
PKSpDef.txt
PKSpeed.txt
PKTotal.txt
元データー Kaggle Pokemon with stats
https://www.kaggle.com/abcsds/pokemon
■フーリエ変換 実習用データーファイル
% 2021-8-13 Ver 1.00
% 変数のリストを表示する
who
% 名前付き変数のクリア
% 3 つの変数、a、b、c を定義し、その後、a と c をクリアする。
a = 1;
b = 2;
c = 3;
who
clearvars a c
who
% whos 変数リストの詳細表示
a = 1;
b = 2;
c = 3;
who
whos
% clear すべての変数を削除する
a = 1;
b = 2;
c = 3;
who
clear
who
% 変数 a b c のうち、b を削除し、a と b は残す
a = 1;
b = 2;
c = 3;
who
clear b
who
% dir フォルダー内容の一覧表示
dir
% ls 現在のフォルダー内容の一覧表示
ls
% pwd 現在のフォルダーの識別
pwd
% 2021-8-13 Ver 1.00
% 加減乗除
a = 1;
b = 3;
c1 = a + b
c2 = a - b
c3 = a * b
c4 = a / b
c5 = a \ b
% 可変(任意)精度の演算
c4
disp('digits(10)')
digits(10)
vpa(c4)
% 可変(任意)精度の演算
disp('digits(30)')
digits(30)
vpa(c4)
% 可変(任意)精度の演算
disp('digits(3)')
digits(3)
vpa(c4)
% 階乗
a = 11;
b = a^2
c = a^3
% 平方根
a = 64;
b = sqrt(a)
c = -1;
d = sqrt(c)
% 実数のn乗根
a = 8;
b = nthroot(a,3) % 3乗根
c = -27;
d = nthroot(c,3) % 3乗根
% vpasolve 方程式の数値的な求解 1
% 例:方程式 x + 2 = 23 を数値的に解き、x を求める
% syms はシンボリック変数の作成
syms x
vpasolve(x + 2 == 23,x)
% vpasolve 方程式の数値的な求解 2
% 例:方程式 x^2 + 4 = 3 を数値的に解き、x を求める
syms x
vpasolve(x^2 + 4 == 3,x)
% vpasolve 方程式の数値的な求解 3
% 例:方程式 x^2 + 3 = 13 を数値的に解き、x を求める
syms x
vpasolve(x^2 + 3 == 13,x)
% 2021-8-13 Ver 1.00
% 行の入力
clear
A = [1, 2, 3, 4, 5]
% 行の結合
A = [1, 2, 3, 4, 5]
B = [6, 7, 8, 9, 10]
C = [A, B]
% 列の入力
A = [1; 2; 3; 4; 5]
% 行から列へ
clear
clc
A = [1, 2, 3, 4, 5]
% B = A'
B = A'
% 固有値 1
% 物理と工学で使う行列と固有値 P38
%
% | 0 -1 1 |
% A = | -1 2 1 |
% | 1 1 2 |
%
A = [0 -1 1 ; -1 2 1 ; 1 1 2]
e = eig(A)
% 固有値 2
% 物理と工学で使う行列と固有値 P38
%
% | 0 -1 1 |
% A = | -1 2 1 |
% | 1 1 2 |
%
A = [0 -1 1 ; -1 2 1 ; 1 1 2]
e = eig(A, 'matrix')
% 2021-8-13 Ver 1.00
% sin(x) の微分 高校数Ⅲ
syms x
f = sin(x)
diff(f)
% cos(x) の微分 高校数Ⅲ
syms x
f = cos(x)
diff(f)
% tan(x) の微分 高校数Ⅲ
syms x
f = tan(x)
diff(f)
% y = 5*e^x * sin(x) のx= 4.7におけるyの微分
syms x
y = 5*exp(x)*sin(x)
g = diff(y)
vpa(subs(g,x,4.7))
ezplot(g)
% 台形則を用いた数値積分 1
d = pi/10000;
x = 0:d:pi;
y = sin(x);
a = d*trapz(y)
plot(x,y)
% 台形則を用いた数値積分 2
d = pi/5;
x = 0:d:pi;
y = sin(x);
a = d*trapz(y)
plot(x,y)
% 2021-8-13 Ver 1.00
% 円周率
fplot(@(x) sin(x))
% 円周率
pi
% 円周率
disp('digits(30)')
digits(30)
vpa(pi)
% 虚数
i
j
a = i
b = a^2
% ネイピア数
exp(1)
% オイラーの恒等式
% e^(π×i) = -1
exp(pi * i)
% 2021-8-13 Ver 1.00
% 関数を-5 5の区間でプロット
fplot(@(x) sin(x))
% 関数を0 5の区間でプロット
fplot(@(x) 3*sin(x)^2+cos(x),[0 5])
% 関数を2ポイントのラインでプロット
fplot(@(x) sin(x+pi/5),'Linewidth',2)
% 関数を2ポイントのラインでプロット
fplot(@(x) sin(x+pi/5),'Linewidth',2);
hold on
fplot(@(x) sin(x^2+pi/5),'--or');
fplot(@(x) sin(x^3+pi/3),'-.*c');
hold off
% 2021-8-13 Ver 1.00
% 式の三次元プロット
% x -5 5 y -5 5
fsurf(@(x,y) sin(x)-cos(y))
% 式の三次元プロット
% x -10 0 y -5 15
fsurf(@(x,y) sin(x)-cos(y),[-10 0 -5 15])
% 2021-8-13 Ver 1.00
% 連立一次方程式 1
% x + 8y = 2
% 2x + 9y = -1
%
[1 8; 2 9] \ [2;-1]
% 連立一次方程式 2
% 2x + 8y = 2
% 2x + 3y = -1
%
[2 8; 2 3] \ [2;-1]
% 連立一次方程式 3
% 1x + 1y = 8
% 2x + 4y = 26
%
[1 1; 2 4] \ [8;26]
% 2021-08-13 Ver 1.
% フーリエ変換するデーターを読込み、プロット
F0 = importdata('FFTTest-01.txt');
plot (F0)
% F0の1から300番目を取り出しプロット
F0s = F0(1:300,:);
plot (F0s)
% フーリエ変換し、プロット
t = 0.01; % サンプリング周期
l = 1024; % データー点数
F1 = fft(F0); % フーリエ変換
F2 = abs(F1/l);
F3 = F2(1:l/2+1);
ts = 1/t;
tt = ts*(0:(l/2))/l;
plot (tt,F3)
% 横軸を拡大
xlim([0,20])