revisar la estructura de la integral para ver la falla
un metodo sencillo de integracion numerica de una funcion continua en un intervalo [a,b] que usted sin duda conoce consiste en dividir el intervalo en subintervalos¨[x,x+xo] y evluar el area del rectangulo bajo la curva dada, sumando luego las areas. cuando menor el incremento xo, mas percisa es la solucion obtenida. Esriba un programa que permita aproximar integrales de esta forma. consulte cualquier texto de analisis numerico si no recuerda la integracion numerica.por favor en la misma estructura.
//hallar el area de un rectangulo y aproximar su integral
//-------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main(){
float a,a1,b,h,h1,h2,n,suma,Inc;
float H[100],A[100];
int opcion,i;
printf(" menu de opcionesnn");
printf("(1) funcion cuadratican");
printf("(2) funcion ecuacion de segundo gradon");
printf("(3) funcion raiz cuadrada de xn");
printf("(4) funcion senxn");
printf("(5) funcion tanxn");
printf("seleccione su opcion:n");
scanf("n%d",&opcion);
printf("Introduzca el valor de bn");
printf("Introduzca el valor de an");
printf("Introduzca el valor de nn");
do{
scanf("n%f",&b);
scanf("n%f",&a);
scanf("n%f",&n);
}while(a>b);
Inc=(b-a)/n;
printf("el incremento es %f",Inc);
do{
if(opcion==1){
h1=a*a;
h2=(a+Inc)*(a+Inc);
}
if(opcion==2){
h1=((a*a)+(2*a+4));
h2=((a+Inc)*(a+Inc)+2*(a+Inc)+4);
}
if(opcion==3){
h1=sinh(a);
h2=sinh(a)+Inc;
}
if(opcion==4){
h1=sin(a);
h2=sin(a)+Inc;
}
if(opcion==5){
h1=tan(a);
h2=tan(a)+Inc ;
}
if(h1<h2){
h=h1;
}else{
h=h2;
a1=Inc*h1;
}
H[0]=h1;
H[1]=h2;
for(i=0;i<=n;i++){
A[i]=0;
for(i=1;i<=n;i++){
H[i]=a+(i+1)*Inc;
if(H[i]<=H[i+1]){
h=H[i];
}else{
h=H[i-1];
A[i-1]=Inc*h;
}
} }
suma=0;
for(i=0;i<=n;i++){
suma=suma+A[i];
}
for(i=0;i>=n;i++){
}
}while(i!=A[i]);
printf(", el area total es:%f", suma);
printf("nnpulse enter para salir");
getch();
}
//hallar el area de un rectangulo y aproximar su integral
//-------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main(){
float a,a1,b,h,h1,h2,n,suma,Inc;
float H[100],A[100];
int opcion,i;
printf(" menu de opcionesnn");
printf("(1) funcion cuadratican");
printf("(2) funcion ecuacion de segundo gradon");
printf("(3) funcion raiz cuadrada de xn");
printf("(4) funcion senxn");
printf("(5) funcion tanxn");
printf("seleccione su opcion:n");
scanf("n%d",&opcion);
printf("Introduzca el valor de bn");
printf("Introduzca el valor de an");
printf("Introduzca el valor de nn");
do{
scanf("n%f",&b);
scanf("n%f",&a);
scanf("n%f",&n);
}while(a>b);
Inc=(b-a)/n;
printf("el incremento es %f",Inc);
do{
if(opcion==1){
h1=a*a;
h2=(a+Inc)*(a+Inc);
}
if(opcion==2){
h1=((a*a)+(2*a+4));
h2=((a+Inc)*(a+Inc)+2*(a+Inc)+4);
}
if(opcion==3){
h1=sinh(a);
h2=sinh(a)+Inc;
}
if(opcion==4){
h1=sin(a);
h2=sin(a)+Inc;
}
if(opcion==5){
h1=tan(a);
h2=tan(a)+Inc ;
}
if(h1<h2){
h=h1;
}else{
h=h2;
a1=Inc*h1;
}
H[0]=h1;
H[1]=h2;
for(i=0;i<=n;i++){
A[i]=0;
for(i=1;i<=n;i++){
H[i]=a+(i+1)*Inc;
if(H[i]<=H[i+1]){
h=H[i];
}else{
h=H[i-1];
A[i-1]=Inc*h;
}
} }
suma=0;
for(i=0;i<=n;i++){
suma=suma+A[i];
}
for(i=0;i>=n;i++){
}
}while(i!=A[i]);
printf(", el area total es:%f", suma);
printf("nnpulse enter para salir");
getch();
}
Perdoname, pero estoy un poco cansado como para encontrar el error en tu programa.
Te mando un programa que calcula la integral por el metodo del rectangulo.
Te mando un programa que calcula la integral por el metodo del rectangulo.
// program k2c8.CPP - page 40
// integral calculation - rectangles method
// c++ exercices book - dr. gershon kagan (first edition : 2001)
// written in Borland CPP ver 3.1
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
double f(double x)
{
return x*x;
} // f
void main()
{
clrscr();
cout.setf(ios::fixed);
cout << setprecision(6);
cout << "integral calculation - rectangles method ô 2 7" << endl;
cout << " ³ xý dx = ÄÄÄ = "
<< "2.333...." << endl;
cout << " õ 1 3";
cout << endl << endl;
for(long n = 10; n <= 1000000; n *= 10)
{
float dx = 1.0/n;
double sum = 0;
for(double x = 1; x < 2; x += dx)
sum += f(x);
sum *= dx;
cout << "integral = " << setw(10) << sum << " n = "
<< setw(8) << n << endl;
}
cout << endl << "end of program - good bye ! ! ! " << endl;
getch();
} // MAIN
// integral calculation - rectangles method
// c++ exercices book - dr. gershon kagan (first edition : 2001)
// written in Borland CPP ver 3.1
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
double f(double x)
{
return x*x;
} // f
void main()
{
clrscr();
cout.setf(ios::fixed);
cout << setprecision(6);
cout << "integral calculation - rectangles method ô 2 7" << endl;
cout << " ³ xý dx = ÄÄÄ = "
<< "2.333...." << endl;
cout << " õ 1 3";
cout << endl << endl;
for(long n = 10; n <= 1000000; n *= 10)
{
float dx = 1.0/n;
double sum = 0;
for(double x = 1; x < 2; x += dx)
sum += f(x);
sum *= dx;
cout << "integral = " << setw(10) << sum << " n = "
<< setw(8) << n << endl;
}
cout << endl << "end of program - good bye ! ! ! " << endl;
getch();
} // MAIN
