Примери симулација

#include <stdio.h>

#include <stdlib.h>

#include <math.h> 

 

double uniform(double a, double b) {

    return rand() / (RAND_MAX + 1.0) * (b - a) + a;

}

 

double estimation_1(double p[], int size, int show_print) {

    double max, ocena;

    int i;

    max = p[0];

 

    for (i = 1; i < size; i++) {

        if (p[i] > max) 

            max= p[i];

    }

 

    ocena = max * (size + 1) / size;

 

    if (show_print)

        printf("Ocena_1 je %f ", ocena);

    return ocena;

}

 

double estimation_2(double p[], int size, int show_print) {

    int i;

    double avg, sum = 0.0;

    double ocena;

    for (i = 0; i < size; ++i) {

        sum += p[i];

    }

    avg = (sum / size);

 

    ocena = avg * 2;

 

    if (show_print)

        printf("Ocena_2 je %f ", ocena);

 

    return ocena;

}

 

double mean(double p[], int size) {

    int i;

    double avg, sum = 0.0;

    for (i = 0; i < size; ++i) {

        sum += p[i];

    }

    avg = (sum / size);

 

    return avg;

}

 

int main() {

    int obim_uzorka = 100;

    int broj_ponavljanja = 10000;

    double p[obim_uzorka];

    int i, j;

    double prava_vrednost = 3;

    int show_print = 1;

    double ocena_1;

    double ocena_2;

    double kv_odstupanje_ocena_1[broj_ponavljanja];

    double kv_odstupanje_ocena_2[broj_ponavljanja];

    double niz_ocena_1[broj_ponavljanja];

    double niz_ocena_2[broj_ponavljanja];

 

    for (i = 0; i < broj_ponavljanja; i++) {

        for (j = 0; j < obim_uzorka; j++) {

            p[j] = uniform(0, prava_vrednost);

        }

        niz_ocena_1[i] = ocena_1 = estimation_1(p, obim_uzorka, show_print);

        niz_ocena_2[i] = ocena_2 = estimation_2(p, obim_uzorka, show_print);

 

        kv_odstupanje_ocena_1[i] = (ocena_1 - prava_vrednost) * (ocena_1 - prava_vrednost);

        kv_odstupanje_ocena_2[i] = (ocena_2 - prava_vrednost) * (ocena_2 - prava_vrednost);

    }

 

    

    printf("Prosecna vrednost 1. ocene je %f ", mean(niz_ocena_1, broj_ponavljanja));

    

    printf("Prosecna vrednost 2. ocene je %f ", mean(niz_ocena_2, broj_ponavljanja));

    

    printf("Srednje-kvadratno odstupanje 1. ocene je %f ", mean(kv_odstupanje_ocena_1, broj_ponavljanja));

 

    printf("Srednje-kvadratno odstupanje 2. ocene je %f ", mean(kv_odstupanje_ocena_2, broj_ponavljanja));

 

    return 0;

 

}


Текући курсеви