#include<stdio.h> #include<string.h> #include<conio.h> #include<math.h> #include<process.h> #define f(x) 3*x -cos(x) -1 #define df(x) 3 -sin(x) void nwrap(); void main(){ printf("\n Solucion por el Método de Newton Raphson \n"); printf("\n F(x): "); printf("\n\t\t\t 3*x -cos(x) -1 = 0 \n\t"); nwrap(); getch(); } void nwrap(){ float x1,x0; float f1,f0; float df0; int i=0, itr=0; float TOL; float error; for(x1=0;;x1 +=0.01){ f1=f(x1); if (f1>0){ break; } } x0 = x1-0.01; f0 = f(x0); printf("Numero de Iteraciones: "); scanf("%d",&itr); printf("Tolerancia Maxima: "); scanf("%f",&TOL); if(fabs(f0)>f1){ printf("\n\t\t La raiz es: %0.4f\n",x1); } if(f1 > fabs(f(x0))){ printf("\n\t\t La raiz es: %0.4f\n",x1); } x0 = (x0+x1)/2; for(;i<=itr;i++){ f0=f(x0); df0=df(x0); x1 = x0 - (f0/df0); printf("\n\t\t iteracion %d aproximacion: %f",i,x1); error = fabs(x1-x0); if(error < TOL){ break; } x0 = x1; } if(error > TOL){ printf("\n\n\t Iteraciones No suficientes" ); } printf("\n\n\n\t\t\t--------------------------"); printf("\n\n\t\t Raiz: %0.4f ",x1); printf("\n\n\n\t\t\t--------------------------"); }
videotutoriales de matlab, octave, numpy, python, POA, algoritmia, simulacion de procesos en ingenieria quimica, y algo de ingenieria quimica
jueves, 3 de julio de 2014
Newton-Raphson en C
martes, 1 de julio de 2014
Método de Falsa Posicion en C
# include <stdio.h> # include <math.h> # include<conio.h> # include<string.h> # include<process.h> #define TOL 0.000005 #define f(x) 3*x+sin(x)-exp(x) void falsaposicion(); void main() { printf("\n Solucion por el metodo de Falsa posicion \n"); printf("\n La Ecuacion a resolver es: "); printf("\n\t\t\t 3*x+sin(x)-exp(x)= 0 \n\n"); falsaposicion(); } void falsaposicion(){ float f0,f1,f2; float x0,x1,x2; int itr; int i; printf("Numero Maximo de Iteracciones: "); scanf("%d",&itr); for(x1=0.0;;){ f1=f(x1); if (f1>0){ break; } else { x1 = x1+0.1; } } x0= x1-0.1; f0 = f(x0); printf("\n\t\t----------------------------------------"); printf("\n\t\t Iteraccion\t x\t\t F(X) \n"); printf("\n\t\t----------------------------------------"); for(i=0;i<itr;i++){ x2 = x0-((x1-x0)/(f1-f0))*f0; f2=f(x2); if(f0*f2>0){ x1=x2; f1=f2; } else { x0=x2; f0=f2; } if (fabs(f(2))>TOL){ printf("\n\t\t%d\t%f\t%f\n",i+1,x2,f2); } } printf("\t\t--------------------------------"); printf("\n\t\t\t Raiz= %f\n",x2); printf("\t\t------------------------------"); getch(); }