| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 88.1 Introduction to wrstcse | ||
| 88.2 Functions and Variables for wrstcse |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
wrstcseは区間演算の素朴な試みです。
工学分野ですべてのパラメータの耐性のすべての組み合わせを適用する際に現れる
最悪ケース計算を実行する力が十分あります。
このアプローチは、最悪の場合パラメータの正確な組み合わせを見つけることは保証されません。 しかし、方程式が無限の局所極小極大を持つかもしれないような停止性問題が影響する真の区間演算を生む問題を避けます。 アルゴリズム的にどれが大域的なものか決定することは不可能かもしれません。
パラメータに、wrstcaseが-1と1の間で変化する tol[n]を与えることで、 耐性がパラメータに適用されます。 同じ nを2つのパラメータに使うと、 同じように2つのパラメータに耐性をもたせます。
load ("wrstcse")はこのパッケージをロードします。
Categories: Share packages · Package wrstcse
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
(0から1まで変化する tol [n]で表される)すべての耐性が偶然0になったら何が起こるか返します。
例:
(%i1) load("wrstcse")$
(%i2) vals: [
R_1= 1000.0*(1+tol[1]*.01),
R_2= 2000.0*(1+tol[2]*.01)
];
(%o2) [R_1 = 1000.0 (0.01 tol + 1),
1
R_2 = 2000.0 (0.01 tol + 1)]
2
(%i3) divider:U_Out=U_In*R_1/(R_1+R_2);
R_1 U_In
(%o3) U_Out = ---------
R_2 + R_1
(%i4) wc_typicalvalues(vals);
(%o4) [R_1 = 1000.0, R_2 = 2000.0]
(%i5) wc_typicalvalues(subst(vals,divider));
(%o5) U_Out = 0.3333333333333333 U_In
|
簡易関数: パラメータがどの値の範囲で変化できるかリストを表示する
例:
(%i1) load("wrstcse")$
(%i2) vals: [
R_1= 1000.0*(1+tol[1]*.01),
R_2= 2000.0*(1+tol[2]*.01)
];
(%o2) [R_1 = 1000.0 (0.01 tol + 1),
1
R_2 = 2000.0 (0.01 tol + 1)]
2
(%i3) wc_inputvalueranges(vals);
[ R_1 min = 990.0 typ = 1000.0 max = 1010.0 ]
(%o3) [ ]
[ R_2 min = 1980.0 typ = 2000.0 max = 2020.0 ]
|
システマティックに パラメータ毎に num個の値を expressionに提出し、 結果のリストを返す。 もし numが与えられなかったら、 numはデフォルト 3になります。
wc_montecarloも参照してください。
例:
(%i1) load("wrstcse")$
(%i2) vals: [
R_1= 1000.0*(1+tol[1]*.01),
R_2= 2000.0*(1+tol[2]*.01)
];
(%o2) [R_1 = 1000.0 (0.01 tol + 1),
1
R_2 = 2000.0 (0.01 tol + 1)]
2
(%i3) divider: U_Out=U_In*(R_1)/(R_1+R_2);
R_1 U_In
(%o3) U_Out = ---------
R_2 + R_1
(%i4) wc_systematic(subst(vals,rhs(divider)));
(%o4) [0.3333333333333334 U_In, 0.3311036789297659 U_In,
0.3289036544850498 U_In, 0.3355704697986577 U_In,
0.3333333333333333 U_In, 0.3311258278145696 U_In,
0.3377926421404682 U_In, 0.3355481727574751 U_In,
0.3333333333333333 U_In]
|
Introduces パラメータ毎に num個のランダムな値を expressionに提出し、 結果のリストを返します。
wc_systematicも参照してください。
Example:
(%i1) load("wrstcse")$
(%i2) vals: [
R_1= 1000.0*(1+tol[1]*.01),
R_2= 2000.0*(1+tol[2]*.01)
];
(%o2) [R_1 = 1000.0 (0.01 tol + 1),
1
R_2 = 2000.0 (0.01 tol + 1)]
2
(%i3) divider: U_Out=U_In*(R_1)/(R_1+R_2);
R_1 U_In
(%o3) U_Out = ---------
R_2 + R_1
(%i4) wc_montecarlo(subst(vals,rhs(divider)),10);
(%o4) [0.3365488313167528 U_In, 0.3339089445851889 U_In,
0.314651402884122 U_In, 0.3447359711624277 U_In,
0.3294005710066001 U_In, 0.3330897542463686 U_In,
0.3397591863729343 U_In, 0.3227030530673181 U_In,
0.3385512773502185 U_In, 0.314764470912582 U_In]
|
exprの最小、最大、標準値を表示します。 もし nが正なら、 パラメータそれぞれに対して n個の値がシステマティックに試行されます。 もし nが負なら、 -n個のランダムな値が代わりに使われます。 もし nが与えられなければ、 3と仮定されます。
例:
(%i1) load("wrstcse")$
(%i2) ratprint:false$
(%i3) vals: [
R_1= 1000.0*(1+tol[1]*.01),
R_2= 1000.0*(1+tol[2]*.01)
];
(%o3) [R_1 = 1000.0 (0.01 tol + 1),
1
R_2 = 1000.0 (0.01 tol + 1)]
2
(%i4) assume(U_In>0);
(%o4) [U_In > 0]
(%i5) divider:U_Out=U_In*R_1/(R_1+R_2);
R_1 U_In
(%o5) U_Out = ---------
R_2 + R_1
(%i6) lhs(divider)=wc_mintypmax(subst(vals,rhs(divider)));
(%o6) U_Out = [min = 0.495 U_In, typ = 0.5 U_In,
max = 0.505 U_In]
|
2つのリスト引数を、 両方のリストの耐性が同時に起こらないように番号を付け直して 耐性に追加します。
例:
(%i1) load("wrstcse")$
(%i2) val_a: [
R_1= 1000.0*(1+tol[1]*.01),
R_2= 1000.0*(1+tol[2]*.01)
];
(%o2) [R_1 = 1000.0 (0.01 tol + 1),
1
R_2 = 1000.0 (0.01 tol + 1)]
2
(%i3) val_b: [
R_3= 1000.0*(1+tol[1]*.01),
R_4= 1000.0*(1+tol[2]*.01)
];
(%o3) [R_3 = 1000.0 (0.01 tol + 1),
1
R_4 = 1000.0 (0.01 tol + 1)]
2
(%i4) wc_tolappend(val_a,val_b);
(%o4) [R_1 = 1000.0 (0.01 tol + 1),
2
R_2 = 1000.0 (0.01 tol + 1), R_3 = 1000.0 (0.01 tol + 1),
1 4
R_4 = 1000.0 (0.01 tol + 1)]
3
|
与えられた値の間で耐える耐性 tolnameを使う パラメータを生成します。
例:
(%i1) load("wrstcse")$
(%i2) V_F: U_Diode=wc_mintypmax2tol(tol[1],.5,.75,.82);
2
(%o2) U_Diode = (- 0.09000000000000002 tol ) + 0.16 tol + 0.75
1 1
(%i3) lhs(V_F)=wc_mintypmax(rhs(V_F));
(%o3) U_Diode = [min = 0.5, typ = 0.75, max = 0.8199999999999998]
|
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by 市川雄二 on October, 4 2018 using texi2html 1.76.