Carlos Luna
Desconectado
Mensajes: 6
|
Topa esto espero sea lo que nesesites lo hize en la escuela no todos los metodos funcionan bien pero el de la biseccion si!! y el de la secante saludos
#include<stdio.h> #include<math.h>
float funcion1(float XI); float funcion2(float XF); float funcion3(float XM); float funcion4(float XI); float funcion5(float XI); float funcion6(float XI); float funcion7(float XI); float formula1(float XI,float XF); float formula2(float Xf,float XM); float formula3(float XI,float FXI,float FXXI); float formula4(float XI,float XII); float formula5(float XI,float FXI,float FXIi,float XIi);
int main() { int m1,n1,k,z,b,u,v,j,i,a,M,m,N,ka,n,e,c,ren,col,temp; float XI=0,XF=0,XM,FXI,FXF,FXM,FXIFXF,FXIFXM,E,FXXI,XII,E2=0.003,XIi=0,FXIi,E3=0.0002; float Matriz[m1][n1],Er,tenp,aa[50][51]; printf("\n\t<------Metodos Numericos------>\n"); do {
printf("\n\tSeleccione: \n\t\t 1.Metodo de la BISECCION\n\n\t\t 2.Metodo de la TANGENTE\n\n\t\t 3.Metodo de la SECANTE\n\n\t\t 4.Multiplicacion de 2 matrices\n\n\t\t 5.Metodo de Gauss-Jordan\n\n\t\t 6.Metodo de Gauss-Seidel\n\n\t\t 7.Polinomio de Newton\n"); scanf("%d",&u); system("cls");
switch(u) { case 1:
printf("Ingrese los valores del intervalo"); scanf("%f %f",&XI,&XF); printf("Ingrese el numero de Iteraciones:"); scanf("%d",&j);
printf("\n\n\tn\tXi\tXf\tf(xi)\tf(xf)\tf(xi)*f(xf)\tXm\tf(xm)\tf(xi)*f(xm)\tError\n\n");
for(i=1;i<=j;i++) { FXI=funcion1(XI); FXF=funcion2(XF); FXIFXF=FXI*FXF; XM=formula1(XI,XF); FXM=funcion3(XM); FXIFXM=FXI*FXM; E=formula2(XI,XM);
printf("\t%d\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f\n",i,XI,XF,FXI,FXF,FXIFXF,XM,FXM,FXIFXM,E); if(FXIFXM<0) { XF=XM; } else { XI=XM; } if(FXIFXM < 0) { XF=XM; } else { XI=XM; if(FXIFXM==0) { printf("En XI o XM se encuentra la raiz"); } } } break;
case 2:
printf("Ingrese el Valor de XI"); scanf("%f",&XI); printf("Ingrese el numero de Iteraciones:"); scanf("%d",&j);
printf("\n\n\tn\tXi\tf(xi))\tf´(xi)\tXi+1\tError\n\n");
for(i=1;i<=j;i++) { FXI=funcion4(XI); FXXI=funcion5(XI); XII=formula3(XI,FXI,FXXI); E=formula4(XI,XII); if(E<0) { E=E*(-1); } printf("\t%d\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f\n",i,XI,FXI,FXXI,XII,E);
if(E<E2) { printf("\n\tXi+1=%f Es la raiz\n",XII); } else { XI=XII; }
} break;
case 3:
printf("Ingrese los valores del intervalo"); scanf("%f %f",&XI,&XIi); printf("Ingrese el numero de Iteraciones:"); scanf("%d",&j);
printf("\n\n\tn\tXi\tXi-1\tf(Xi)\tf(Xi-1)\tXi+1\tError\n\n");
for(i=1;i<=j;i++) { FXI=funcion7(XI); FXIi=funcion6(XIi); XII=formula5(XI,FXI,FXIi,XIi); E=formula4(XI,XII); if(E<0) { E=E*(-1); } printf("\t%d\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f\n",i,XI,XIi,FXI,FXIi,XII,E); if(E<E3) { printf("\n\tXi+1=%.4f Es la raiz\n",XII); } else { XI=XIi; XIi=XII; }
} break;
case 4:
printf("\n Multiplicacion De Matricez \n"); printf("\n Ingrese los renglones de la Matriz 1\n "); scanf("%d",&M); printf("\n Ingrese las columnas de la Matriz 1\n "); scanf("%d",&N); printf("\n Ingrese los de renglones de la Matriz 2\n "); scanf("%d",&m); printf("\n Ingrese las columnas de la Matriz 2\n "); scanf("%d",&n); system("cls"); float matriz1[30][31],matriz2[30][31],aa[30][30],matriz3[30][31]; if(m==N) { printf("valor de Matriz1\n "); for(col=0;col<M;col++) { for(ren=0;ren<N;ren++) { printf("valor [%d][%d]de matriz1\n ",col,ren); scanf("%f",&matriz1[col][ren]); } } printf("valor de Matriz2\n "); for(col=0;col<m;col++) { for(ren=0;ren<n;ren++) { printf("valor [%d][%d]de matriz2\n ",ren,col); scanf("%f",&matriz2[col][ren]); } } printf("\nMatriz A=\n"); for(col=0;col<M;col++) { for(ren=0;ren<N;ren++) { printf("%.2f ",matriz1[col][ren]); } printf ("\n"); } printf ("\nMatriz B=\n"); for (col=0;col<m;col++) { for (ren=0;ren<n;ren++) { printf ("%.2f ",matriz2[col][ren]); } printf ("\n"); } printf ("\nResultado=\n"); for(col=0;col<n;col++) { for(ren=0;ren<n;ren++) { matriz3[col][ren]=0; for(temp=0;temp<N;temp++) { matriz3[col][ren]=matriz3[col][ren]+(matriz1[ren][temp]*matriz2[temp][col]); } } } for(col=0;col<M;col++) { for (ren=0;ren<n;ren++) { printf ("%.2f ",matriz3[ren][col]); } printf ("\n"); } } break; case 5: printf("\n Metodo Gauss-Jordan\n"); printf("Ingrese El numero de ecuaciones"); scanf("%d",&n);
for(i=1;i<=n;i++) { for(j=1;j<=n+1;j++) { printf ("Ingrese los valores de la matriz"); scanf("%f",&aa[j]); } } for(i=1;i<=n;i++) { c=aa[j]; for(j=1;j<=n+1;j++) { aa[j]=aa[j]/c; } for(j=1;j<=n;j++) { if(i!=j) { c=aa[j]; for(z=1;z<=n+1;z++) { aa[j]=(aa[j]-aa[j])*c; } } printf("\n Incognita(%d) = %.4f",i,aa[n+1]); } } break; case 6:
printf("\n\n <-----------Metodo Gauss-Seidel----------->\n\n\n"); printf("ingrese el numero de iteraciones"); scanf("%d",&n); printf("ingrese el valor incial de a+b+c"); scanf("%d,%d,%d",&a,&b,&c); printf("ingrese el valor de filas de la matriz"); scanf("%d",&m1); printf("ingrese el valor de columnas de la matriz"); scanf("%d",&n1); system("cls");
printf("\n Ingrese los valores de la matriz\n\n"); for(i=0;i<m1;i++) { for(j=0;j<n1;j++) { printf("valor [%d][%d]de Matriz 1\n ",i,j); scanf(" %f",&Matriz[j]); } } system("cls"); printf("\n\n Metodo de Gauss Seidel\n\n"); printf(" \ta \tb \tc");
for(k=0;k<n;k++) { tenp=a; a=(Matriz[0][3]+(Matriz[0][1]*b)+(Matriz[0][2]*c))/Matriz[0][0];
b=(Matriz[0][3]+(Matriz[1][0]*a)+(Matriz[1][2]*c))/Matriz[1][1];
c=(Matriz[2][4]-(Matriz[2][0]*a)+(Matriz[2][1]*b))/Matriz[2][2];
Er=fabs((a-temp)/a)*100;
if(Er<e) { printf("Error = %f y es menor que el 10 Porciento",Er); } else { printf(" \n\n%.4d %.4d %.4d\n\n",a,b,c); } } break;
case 7:
printf("Ingrese el numero de iteraciones"); int o=-1,n,i,j,k=-1; scanf("%d",&n); printf("\n\nIngrese los valores de Xi & F(xi)\n\n");
float Tabla[n][n],Xi[n]; int l=n,m=n; for(i=0;i<n;i++) { o=o+1; printf("Ingrese datos: X(%d)",o); scanf("%f",&Xi); } for(j=0;j<n;j++) { k=k+1; printf("Ingrese datos:F(%d,0)",k); scanf("%f",&Tabla[j][0]); } for(i=1;i<=n-1;i++) { for(j=0;j<m;j++) { Tabla[j]=((Tabla[i+1][j-1])-(Tabla[j-1]))/((Xi[i+j])-(Xi)); } m=((m)-(1)); } for(i=0;i<n;i++) { for(j=0;j<=l;j++) { printf("%.2f\t",Tabla[j]); } printf("\n"); l=((l)-(1)); } break; printf("\n\nPresione 0 para regresar U otro numero para salir "); scanf("%d",&a); }
} while(a==0); return 0; } float funcion1(float XI) { float a,b,c; a=4*(pow(XI,4)); b=9*(pow(XI,2)); c=a-b+1; return c; } float funcion2(float XF) { float a,b,c; a=4*(pow(XF,4)); b=9*(pow(XF,2)); c=a-b+1; return c; } float funcion3(float XM) { float a,b,c; a=4*(pow(XM,4)); b=9*(pow(XM,2)); c=a-b+1; return c; } float funcion4(float XI) { float a; a=(pow(XI,3))+(pow(XI,2))-(3*XI)+5; return a; } float funcion5(float XI) { float a; a=3*(pow(XI,2))+(2*XI)-3; return a; } float funcion6(float XIi) { float a; a=(exp(-XIi))-XIi; return a; }float funcion7(float XI) { float a; a=(exp(-XI))-XI; return a; } float formula1(float XI,float XF) { float a; a=(XI+XF)/2; return a; } float formula2(float XI,float XM) { float a,b; a=((XM-XI)/XM); if(a<0) { b=a*(-1); } return b; } float formula3(float XI,float FXI,float FXXI) { float a; a=XI-(FXI/FXXI); return a; } float formula4(float XI,float XII) { float a; a=(XII-XI)/XII; return a; }
float formula5(float XI,float FXI,float FXIi,float XIi) {
float a; a=XI-((FXI*(XI-XIi))/(FXI-FXIi)); return a; }
|