0

matlab を使用して偽陽性率と偽陰性率を計算しようとしています。しきい値 (ある時点で曲線を切断する垂直線) を使用して、S 曲線を生成しました。しきい値の左側の曲線の下にあるすべての値は偽陽性であり、しきい値の右側の曲線の下にないすべての値は偽陰性です。偽陽性とarea_of_rect_to_right_of_thresholdの曲線の下の領域を統合する必要があります-(しきい値の右側の曲線の下の領域)偽陰性を計算します。matlab で次のコードを実行しようとすると、奇妙なエラーが発生します。

    syms p;
    func = (1 - (1 - p^5)^10);
    areaOfRect = (1-threshold)*1; 
    fn = areaOfRect - int(func,p,0,threshold);
    fp = int(func,p,threshold,1);


fn = 2575908626830580620307480425353828014939901186516550645854841225649977931806217173152793134129 ......

fp = 20989145492538166675017041353401970126067731601439729556868060737768716969716535384....

これらの出力は非常に独特で、統合関数を正しい方法で使用していないと感じさせます。どんな助けでも大歓迎です。

4

2 に答える 2

3

有理形式で正確な解を取得しているように見えます。a/b浮動小数点への評価は数値積分と一致する必要があります

fn_sym = double(fn)
fn_num = areaOfRect - quadl(@(p)(1 - (1 - p.^5).^10),0.01,threshold)
fp_sym = double(fp)
fp_num = quadl(@(p)(1 - (1 - p.^5).^10),threshold,1.01)
于 2014-03-15T00:32:23.743 に答える