Skip to content

Instantly share code, notes, and snippets.

@monhime

monhime/kinzi3.m

Created Jan 14, 2020
Embed
What would you like to do?
インパルス電圧印加時の火花電圧の推定
% V: 印加した電圧のベクトル
V = [74.121; 88.9452; 93.8866; 96.3573; 97.59265; 98.828; 101.2987; 103.7694; 106.2401; 108.7108; 111.1815; 113.6522; 123.535]
% P: その電圧での火花放電率
P = [0; 0; 0.2; 0.2; 0.2; 0.1; 0.4; 0.7; 0.7; 0.8; 1; 1; 1]
% 係数ベクトルkと、入力vの関数を作成
% normcdf(x,m,v)は平均値m, 標準偏差vの正規累積分布のxのときの値を出力します
% k(1)が平均値, k(2)が標準偏差を表します
p = @(k,vdata) normcdf(vdata,k(1),k(2));
% 係数ベクトルxの各要素の初期値(なんとなく予想できる値)
k0 = [100 10];
% 各係数が出力されます
k = lsqcurvefit(p, k0, V, P)
% k = [102.5146 5.7996]だったとします
% これは平均値が102.5146 , 標準偏差が5.7996の累積正規分布に近似できたことを意味します
% 計測値と近似曲線を重ねます
plot(V, P, 'o');
hold on;
% 近似曲線の式を作り直します
% ↑キーでモデル式定義したときの式に遡り、@(k,vdata)を@(vdata)に変えるだけです
p = @(vdata) normcdf(vdata,k(1),k(2));
fplot(f);
% テキストボックスに数式を入れるとき数式に翻訳してくれないときがあるので、先にコマンドで書き込みます
% 数式を書き込めたらあとは数式をダブルクリックして編集できます
text(90,0.9,'$$ P=\frac{1}{2}\mathrm{erfc}\left(-\frac{x-102.5}{\sqrt{2}\times 5.8}\right) $$','Interpreter','latex');
% あとはプロパティインスペクターでグリッド入れたり、ラベルやタイトルを入れます
hold off;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.