#include<stdio.h>
#include<math.h>
#include <conio.h>
#include <stdlib.h>
float ntermino(float dv, float h);
int main()
{
char r, f;
float a,b,c;
double x1=0, x2=0;
int x=0;
int p=0;
int n2=0;
int n3=0;
int n=0;
int i, fact=1;
float resultado;
float xc;
float xv1=-0.001, xv2=-3000;
float Fx;
float Fxr;
float Errorx1, Errorx2;
int q, t, w, k;
float an[q], bn[q-1], cn[q-2], dn[q-3], av, bv, cv, dv, v, h, j, ve, ea, er;
double taylor;
for(f='R'; f=='R'
{
system("cls");
printf("Menu 1\n");
printf("Presione 1 para Hoja de presentacion\n");
printf("Presione 2 para Error de Redondeo\n");
printf("Presione 3 para Calculo de error por Truncamiento(Serie de Taylor)\n");
scanf("%d",&p);
switch(p)
{
case 1:
system("cls");
printf("Universidad Tecnologica de Panama\n");
printf("Facultad de Electrica\n");
printf("Lic. en Ingenieria Electromecanica\n");
printf("Metodos numericos para Ingenieros\n");
printf("Proyecto\n");
printf("Facilitadora: Ing. Jacqueline S. De Ching\n");
printf("Integrantes:\n");
printf("Tommy Feng 3-742-2490\n");
printf("Mario Him 8-922-621\n");
printf("Grupo: 1IE-123\n");
break;
case 2:
system("cls");
printf("Menu 2 Error de Redondeo\n");
printf("Ingrese los valores para: a, b y c:\n\n");
scanf("%f%f%f",&a,&b,&c);
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("Presione 1 para el resultado de simple precision\n");
printf("Presione 2 para el resultado de doble precision\n");
printf("Presione 3 para el analisis de los resultados calculado contra las raices verdaderas\n");
scanf("%d",&n2);
switch(n2)
{
case 1:
printf("El Resultado en simple precision es: %f\n",x1);
printf("El Reusltado en simple precision es: %f\n",x2);
break;
case 2:
printf("El Resultado en doble precision es: %lf\n",x1);
printf("El Resultado en doble precision es: %lf\n",x2);
break;
case 3:
printf("Analisis de los resultados valor calculado contra las raices verdaderas\n");
Errorx1=x1-xv1;
Errorx2=x2-xv2;
Fx=(pow(a*x1,2))+b*x1+c;
printf("Fx: %.3f\n",Fx);
Fxr=(pow(a*xv1,2))+b*xv1+c;
printf("Fxr: %.3f\n",Fxr);
printf("El Error en el x1: %.f\n",fabs(Errorx1));
printf("El Error en el x2: %.f\n",fabs(Errorx2));
}
break;
case 3:
{
int q, t, w, k;
float an[q], bn[q-1], cn[q-2], dn[q-3], av, bv, cv, dv, v, h, j, ve, ea, er;
double taylor;
do{
system("cls");
printf("Menu#4\nError por truncamiento\n");
printf("1. Error cometido en el n-esimo termino.\n2. Valor aproximado de la función.\n3. Valor exacto de la función.\n4. Error Absoluto.\n5. Error Relativo Porcentual.\n6. Regresar al Menú #1\n");
scanf("%d", &k);
switch(k){
case 1:
system("cls");
printf("Ingrese los coeficientes para una funcion tipo f(x)=d+cx+bx^2+ax^3\n");
getch();
system("cls");
q=4;
for(t=0; t<q; t++)
{
w=t+1;
printf("ingrese coeficientes #%d ", w);
scanf ("%f", &an[t]);
system("cls");
}
//primera derivada
for(t=1; t<q; t++)
{
bn[t-1]=an[t]*t ;
}
//segunda derivada
for(t=1; t<q-1; t++)
{
cn[t-1]=bn[t]*t;
}
//tercera derivada
for(t=1; t<q-2; t++)
{
dn[t-1]=cn[t]*t;
}
av=(an[0])+(v*an[1])+(pow(v,2)*an[2])+(pow(v,3)*an[3]);
bv=(bn[0])+(v*bn[1])+(pow(v,2)*bn[2]) ;
cv=(cn[0])+(cn[1]*v);
dv=dn[0];
printf("Ingrese el valor de x inicial");
scanf("%f", &v);
printf("ingrese el valor de la x final");
scanf("%f", &j);
h=j-v;
system("cls");
taylor=(av)+(bv*h)+ (pow(h, 2)*cv*0.5)+((pow(h, 3)*dv)/6);
ve=(an[0])+(j*an[1])+(pow(j,2)*an[2])+(pow(j,3)*an[3]);
ea=ve-taylor;
er=(ea/ve)*100;
printf("\n\n\tEl error en el n-ésimo termino es %f", ntermino(dv, h));
printf("\n\n\tPulse cualquier tecla para regresar al menú anterior");
getch();
break;
case 2:
system("cls");
printf("\n\n\tEl valor aproximado es %f", taylor);
printf("\n\n\tPulse cualquier tecla para regresar al menú anterior");
getch();
break;
case 3:
system("cls");
printf("\n\n\tEl valor exacto de la funcion es %f",ve );
printf("\n\n\tPulse cualquier tecla para regresar al menú anterior");
getch();
break;
case 4:
system("cls");
printf("\n\n\tEl error absluto de la funcion es %f",ea );
printf("\n\n\tPulse cualquier tecla para regresar al menú anterior");
getch();
break;
case 5:
system("cls");
printf("\n\n\tEl error relativo de la funcion es %f",er );
printf("\n\n\tPulse cualquier tecla para regresar al menú anterior");
getch();
break;
case 0:
system("cls");
printf("Presione Enter para volver al MENU #1");
break;
default:
system("cls");
printf("La opcion que ingreso en incorrecta.\n\nPresione Enter para intentarlo de nuevo");
getch();
break;
}
}while(k);
}
float ntermino(float dv, float h)
{
float enesimo;
enesimo=((pow(h, 3)*dv)/6);
return enesimo;
}
break;
}
printf("Presione R para regresar al Menu 1\n");
printf("Sino presione cualquier boton y presione Enter para salir del programa\n");
fflush(stdin);
scanf("%c", &f);
}
printf("Se acabo el programa presione Enter para salir\n");
}