Calcular a Variância em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderá a calcular a variância de um conjunto de números em C. O laboratório cobre três etapas principais: calcular a média, calcular a soma dos quadrados dos desvios da média e dividir a soma pelo número de valores para obter a variância. O laboratório fornece exemplos de código e explicações detalhadas para guiá-lo no processo de implementação destes cálculos estatísticos em C.

O laboratório começa demonstrando como calcular a média de um conjunto de números, que é uma etapa crucial no cálculo da variância. Em seguida, mostra como calcular a soma dos quadrados dos desvios da média e, finalmente, como dividir a soma pelo número de valores para obter a variância. Seguindo as instruções passo a passo, você obterá uma compreensão sólida de como realizar estas operações estatísticas usando a linguagem de programação C.

Calcular a Média

Nesta etapa, aprenderá a calcular a média de um conjunto de números em C. A média é calculada somando todos os valores e dividindo pelo número total de números.

Primeiro, crie um novo arquivo C para implementar o cálculo da média:

cd ~/project
nano mean.c

Agora, escreva o seguinte código C para calcular a média:

#include <stdio.h>

int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int count = sizeof(numbers) / sizeof(numbers[0]);
    int sum = 0;

    // Calcular a soma de todos os números
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }

    // Calcular a média
    float mean = (float)sum / count;

    printf("Números: ");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\nContagem: %d\n", count);
    printf("Soma: %d\n", sum);
    printf("Média: %.2f\n", mean);

    return 0;
}

Compile e execute o programa:

gcc mean.c -o mean
./mean

Saída de exemplo:

Números: 10 20 30 40 50
Contagem: 5
Soma: 150
Média: 30.00

Vamos decompor o código:

  • Definimos um array de inteiros numbers
  • Calculamos a contagem de números usando sizeof()
  • Usamos um loop for para calcular a soma de todos os números
  • Calculamos a média dividindo a soma pela contagem
  • Imprimimos os números, a contagem, a soma e a média

Soma (x-média)² e Divisão por Contagem

Nesta etapa, aprenderá a calcular a variância computando a soma dos quadrados dos desvios em relação à média e dividindo pelo número de valores.

Primeiro, modifique o arquivo mean.c anterior para incluir o cálculo da variância:

cd ~/project
nano variance.c

Escreva o seguinte código C para calcular a variância:

#include <stdio.h>
#include <math.h>

int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int count = sizeof(numbers) / sizeof(numbers[0]);
    int sum = 0;
    float mean, variance = 0.0;

    // Calcular a soma e a média
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }
    mean = (float)sum / count;

    // Calcular a soma dos quadrados dos desvios
    for (int i = 0; i < count; i++) {
        variance += pow(numbers[i] - mean, 2);
    }

    // Dividir por contagem para obter a variância
    variance /= count;

    printf("Números: ");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\nMédia: %.2f\n", mean);
    printf("Variância: %.2f\n", variance);

    return 0;
}

Compile e execute o programa com a biblioteca matemática:

gcc variance.c -o variance -lm
./variance

Saída de exemplo:

Números: 10 20 30 40 50
Média: 30.00
Variância: 200.00

Etapas-chave no cálculo da variância:

  • Calcular a média (da etapa anterior)
  • Subtrair a média de cada número
  • Elevar as diferenças ao quadrado
  • Somar as diferenças ao quadrado
  • Dividir pela contagem de números

Imprimir a Variância

Nesta etapa, aprenderá a formatar e imprimir o cálculo da variância com diferentes níveis de precisão e a criar uma função para tornar o código mais modular.

Modifique o arquivo variance.c anterior para melhorar a impressão da variância:

cd ~/project
nano variance_print.c

Escreva o seguinte código C para aprimorar a saída da variância:

#include <stdio.h>
#include <math.h>

// Função para calcular a variância
float calculate_variance(int numbers[], int count) {
    int sum = 0;
    float mean, variance = 0.0;

    // Calcular a soma e a média
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }
    mean = (float)sum / count;

    // Calcular a soma dos quadrados dos desvios
    for (int i = 0; i < count; i++) {
        variance += pow(numbers[i] - mean, 2);
    }

    // Dividir por contagem para obter a variância
    variance /= count;

    return variance;
}

// Função para imprimir a variância com diferentes formatos
void print_variance(float variance) {
    printf("Representações da Variância:\n");
    printf("1. Formato Padrão:   %.2f\n", variance);
    printf("2. Notação Científica: %e\n", variance);
    printf("3. Formato Preciso:    %.4f\n", variance);
}

int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int count = sizeof(numbers) / sizeof(numbers[0]);

    // Calcular e imprimir a variância
    float variance = calculate_variance(numbers, count);

    printf("Números Originais: ");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n\n");

    print_variance(variance);

    return 0;
}

Compile e execute o programa:

gcc variance_print.c -o variance_print -lm
./variance_print

Saída de exemplo:

Números Originais: 10 20 30 40 50

Representações da Variância:
1. Formato Padrão:   200.00
2. Notação Científica: 2.000000e+02
3. Formato Preciso:    200.0000

Melhorias-chave:

  • Criadas funções separadas para cálculo da variância
  • Adicionados múltiplos formatos de impressão da variância
  • Demonstração de diferentes maneiras de representar a variância

Resumo

Neste laboratório, aprendeu a calcular a média de um conjunto de números em C somando todos os valores e dividindo pelo total de valores. Em seguida, aprendeu a calcular a variância computando a soma dos quadrados dos desvios em relação à média e dividindo pelo número de valores. Isso permite medir a dispersão dos dados em torno da média, uma métrica útil para análise estatística.