MATLAB/simulink

MATLAB/simulink

MATLABで分散を逐次計算しようとしてうまくいかなかった話

MATLABで分散を逐次計算しようとしてうまくいかなかった。分散の逐次計算は\begin{align}\sigma_{n+1}^2=\dfrac{n(\sigma_n^2+\mu_n^2)+x_{n+1}^2}{n+1}-\mu_{n+1}...
MATLAB/simulink

MATLABで平均を逐次計算する

平均は\begin{align}\mu_{n+1} = \frac{1}{n+1} (n \mu_n + x_{n+1})\end{align}で逐次計算できる。以下コードN=10;x=1:1:N;mu=zeros(1,N);mu(1,1)...
MATLAB/simulink

MATLABでベルヌーイ数を求める

これの続きN=6;B=zeros(1,N);B(1,1) = 1;disp(B(1,1));for i = 2:1:N B(1,i) = getBernoulliNumber(i, B); disp(B(1,i));endfunction ...
MATLAB/simulink

MATLABで素数の逆数和を計算する

素数の逆数和は\begin{align}P=\frac{1}{2} + \frac{1}{3}+ \cdots = \infty\end{align}となる。これを計算する。以下コードN=100;P=zeros(1,N);for i=1:1...
MATLAB/simulink

MATLABで素因数分解をする

これの続きnum = input('数字を入力してください: ');fprintf('入力された数字 -> %d\n', num);PrimeFactorization(num);function PrimeFactorization(nu...
MATLAB/simulink

MATLABのisprimeの速度を比較してみた

以下のソースコードで速度を比較。n=15のとき自作関数:0.0025isprime:0.0016n=150のとき自作関数:0.0049isprime:0.0064なお自作のmyisprimeで計算できるのはn=170程度までn = 15;c...
MATLAB/simulink

MATLABで素数の数を求める

これのMATLAB版n = 15;count = 0;for i = 1:n disp(); count = count + isprime(i);enddisp();function p = isprime(n) k = factoria...
MATLAB/simulink

MATLABで多項式を解く

polynomialに生成した多項式を放り込んでsolveで解を求める。coefficientsには高い順に係数を入れればいい。今の例だと\(x^2+5x+6=0\)を解く。coefficients = ;syms x;polynomial...
MATLAB/simulink

MATLABで素数定理を確認する

primesを使えば簡単。n_min = 2;n_max = 1000;x = n_min:1:n_max;p_count=zeros(size(x));pi_n = x ./ log(x);for i=1:1:length(x) p_co...
MATLAB/simulink

MATLABでスターリングの公式を計算する

スターリングの公式は\begin{align}n! \approx \sqrt{2\pi n} \left(\frac{n}{e}\right)^n \end{align}で表される。以下コード。stirling(3)function re...
ChatGPT

ChatGPTでMATLAB用の最急降下法の学習係数最適化プログラムを生成した

ChatGPTでMATLAB用の最急降下法の学習係数最適化プログラムを生成した。合ってるかは不明。% 3変数のラインサーチのサンプルコード(gradを使用しない)% 目的関数(Rosenbrock関数)fun = @(x) 100*(x(2...
MATLAB/simulink

MATLABで楕円曲線を描く

今回描く楕円曲線は\begin{align}y^2=x^3-x\end{align}解は複素数になるときもあるが、今回は実平面との交点のみを描く。ルートの中身\begin{align}x^3-x\end{align}が正になるときだけ描画す...
MATLAB/simulink

MATLABでL0ノルムを求める

L0ノルムの定義\begin{align}L_0=\sum_{i=1}^n\delta(x_i),\quad \delta(x_i)=\begin{cases}1\hspace{5mm} (x_i \neq 0)\\0\hspace{5mm...
MATLAB/simulink

MATLABでディリクレ核を描画する

ディリクレ核\begin{align}D_n(x)=1+2\sum_{k=1}^{n} \cos (kx) = \frac{\sin \left( \frac{2n+1}{2}\right )x}{\sin \frac{x}{2}}\end...
MATLAB/simulink

MATLABでベルヌーイ数を求める

これの続き。N=10;B=zeros(1,N);B(1,1)=1;for i = 1:1:N B(1,i+1)=getBernoulliNumber(i, B);endBfunction y = getBernoulliNumber(n, ...
MATLAB/simulink

matlabでArmijo条件を試してみる

Armijo条件は最急降下法などの係数を最適にする方法で、ここを参考にmatlabを試した。収束の様子は次の通り。学習係数の変化文献はこの辺が詳しい
MATLAB/simulink

MATLABでローパスフィルターのボード線図を書く

ローパスフィルターの伝達関数は\begin{align}H(s)=\frac{1}{1+\tau s}\end{align}このときカットオフ周波数は\(\omega=\frac{1}{\tau}\)となる。ローパスフィルターの伝達関数は以...
MATLAB/simulink

MATLABで1/2 + 1/4 + 1/6 + 1/8 + ⋯=1を計算する

今回は\begin{align}\frac{1}{2} + \frac{1}{4} + \frac{1}{6} + \frac{1}{8} \cdots = 1\end{align}をMATLABで計算してグラフで確認する。結果ソースN=1...
MATLAB/simulink

MATLABで1/4 + 1/16 + 1/64 + 1/256 + ⋯=1/3を計算する

今回は\begin{align}\frac{1}{2^2} + \frac{1}{2^4} + \frac{1}{2^6} + \frac{1}{2^8} + \cdots &=\frac{1}{3}\end{align}をMATLABで計...
MATLAB/simulink

MatlabでNelder-Mead法を使う

matlabでNelder-Mead法を使うにはfminsurchを使えばいい。fun = @(x)100*(x(2) - x(1)^2)^2 + (1 - x(1))^2;x0 = ;x = fminsearch(fun,x0);