·

Administração ·

Abastecimento de Água

Envie sua pergunta para a IA e receba a resposta na hora

Fazer pergunta
Equipe Meu Guru

Prefere sua atividade resolvida por um tutor especialista?

  • Receba resolvida até o seu prazo
  • Converse com o tutor pelo chat
  • Garantia de 7 dias contra erros

Texto de pré-visualização

// +--------------------------------------------------------------------------+// | Integracao: 1/3 de Simpson Repetida (Integrais Definidas) |// +--------------------------------------------------------------------------+void Integracao_Tercosimpson_Repetida() {string resp;int i, n;doublea, b, x, h, r, SomaPares, SomaImpares;cout << "\nRegra 1/3 de Simpson Repetida:" << endl;cout << "A funcao f eh conhecida? (s/n)";cin >> resp;if (resp == "s") {do {cout << "\nEntre com o numero de Intervalos: ";cin >> n;if (n <= 0) {cout << "Numero de intervalos invalido...";continue;}cout << "Entre com o extremo inferior (x_0): ";cin >> a;cout << "Entre com o extremo superior (x_n): ";cin >> b;if (a >= b) {cout << "'a' deve ser menor do que 'b'...";continue;}} while (n <= 0 || a >= b);}SomaPares = 0;SomaImpares = 0;if (resp == "s") {//O nº de intervalos deve ser par (n = 2k)!if (n % 2 != 0)n++;h = (b - a) / n;x = a + h;for (i = 1; i < n; i++) {if (i % 2 == 0)SomaPares += f(x);elseSomaImpares += f(x);x += h;}r = h / 3 * (f(a) + f(b) + 4 * SomaImpares + 2 * SomaPares);}else {ifstream entrada("Tabela_Simpson.txt");if (!entrada) {cout << "Arquivo não pode ser aberto!" << endl;exit(1);}vector<double> x, y;cout << "\nFazendo a leitura dos dados..." << endl;n = 0; //contador do número de pontosdouble x_i, y_i;while(entrada >> x_i >> y_i){x.push_back(x_i);y.push_back(y_i);cout << setw(10) << x_i << setw(10) << y_i << "\n";n++;}cout << "Numero de pares ordenados = " << n << ", portanto, temos " << n - 1 << "intervalos \n\n";entrada.close();double y_front;if ((n - 1) % 2 != 0) { //nº de intervalos não é par// Trapézio no primeiro subintervalor = (x[1] - x[0]) * (y[0] + y[1]) * 0.5;// Tamanho dos demais subintervalosh = (x.back() - x[1]) / (n - 2); y_front = y[1];for (i = 2; i < (int)x.size() - 1; i++) {if (i % 2 == 0)SomaImpares += y[i];elseSomaPares += y[i];}}else { //nº de intervalos é parr = 0;h = (x.back() - x.front()) / (n - 1);y_front = y.front();for (i = 1; i < (int)x.size(); i++) {if (i % 2 == 0)SomaPares += y[i];elseSomaImpares += y[i];}}r += h / 3 * (y_front + y.back() + 4 * SomaImpares + 2 * SomaPares);}cout << "\n\n O valor da integral eh: " << setprecision(10) << r;};

base