Está en la página 1de 73

APUNTES

Métodos numéricos

Instituto Politécnico Nacional


Escuela Superior de Ingeniería Mecánica y Eléctrica
Rosales Reyna Fernando
Método del trapecio simple.
//método trapecio simple
#include<iostream>
#include<conio.h>
#include<windows.h>
#include<math.h>
using namespace std;

int main(){
int a, b, i=1, x=1;
float r;
inicio:
system("CLS");
textcolor(MAGENTA);
gotoxy(15,2);
cout<<"Integral Definida de A a B para";
gotoxy(24,4);
textcolor(CYAN);
cout<<"~ "<<char(159)<<"(x)=x"<<char(253)<<"dx ~";
textcolor(WHITE);
gotoxy(3,6); cout<<"Inserte el valor inferior(a) ";
cout<<char(26)<<" | | ";
gotoxy(3,7); cout<<"Inserte el valor superior(b) ";
cout<<char(26)<<" | | ";
gotoxy(3,9); cout<<"---------------resultado--------------";
textcolor(LIGHTCYAN);
gotoxy(35,6); cin>>a;
gotoxy(35,7); cin>>b;
if(a>0&&b>0&&a<b){
r=((b*b*b)/3)-((a*a*a)/3);
textcolor(LIGHTGRAY);
gotoxy(3,11); cout<<"(b"<<char(252)<<"/3)-(a"<<char(252)<<"/3) = ";
textcolor(LIGHTMAGENTA); printf("%0.4f",r);
salida:
textcolor(WHITE);
gotoxy(3,13); cout<<"Desea hacer otro calculo? [1]SI ||[2]NO";
textcolor(LIGHTCYAN);
gotoxy(15,14); cout<<char(26)<<" | | "<<char(27);
gotoxy(19,14); cin>>i;
if(i<0&&i>2){
system("CLS");
textcolor(LIGHTRED);
gotoxy(12,2); cout<<"Opcion no valida =(";
textcolor(WHITE);
goto salida;
}
else{
system("CLS");
textcolor(LIGHTCYAN);
gotoxy(12,5); cout<<"Hasta luego UwU";
}
}
else{
textcolor(LIGHTRED);
system("CLS");
parpadeo:
if(x<=5){
gotoxy(15,5); cout<<"Error =(";
Sleep(200);
system("CLS");
Sleep(100);
x++;
goto parpadeo;
}
}
if(i==1) goto inicio;
getch();
return(0);
}
Resultado en pantalla:
Método del trapecio múltiple
//método trapecio compuesto
#include<iostream>
#include<conio.h>
#include<windows.h>
#include<math.h>
#include<C:\Users\ferch\Desktop\tareas\metodos\NewLibs\artist.h>
using namespace std;

int main(){
int a,b,i=1,k,c=5578, j=1, cua, lin, con, alt;
char op;
float res, ea, an=0, aa, bb, aux, h, n, fa, fb;
while(j==1){
do{
k=1;
latabla();
integralvacia();
gotoxy(3,7); cout<<"Dame el valor >A<";
gotoxy(6,12); cin>>cua;
gotoxy(3,7); cout<<"Dame el valor >B<";
gotoxy(11,12); cin>>lin;
gotoxy(3,7); cout<<"Dame el valor >C<";
gotoxy(15,12); cin>>con;
gotoxy(3,7); cout<<"Dame el valor >b<";
gotoxy(5,14);cin>>b;
if(b<0){
error(50,15,5);
}
else{
gotoxy(3,7); cout<<"Dame el valor >a<";
gotoxy(5,10); cin>>a;
gotoxy(3,7); cout<<"cantidad de poligonos n=";
gotoxy(28,7);cin>>n;
if(a<=b){
error(50,15,5);
}
else{
if(b==555 && a==666){
gotoxy(20,20); cout<<"Hasta luego =D";
return 0;
}
aa=((cua*pow(a,3))/3)+((lin*a*a)/2)+con*a;
bb=((cua*pow(b,3))/3)+((lin*b*b)/2)+con*b;
res=aa-bb;
h=(a-b)/n;
aux=0;
alt=8;
for(float pollo=b+h;pollo<a;pollo=pollo+h){
fa=function(cua, lin, con, pollo);
aux=aux+fa;
gotoxy(50,alt); printf("%.2f || %.2f",pollo,fa);
alt++;
}
fa=function(cua, lin, con, a);
fb=function(cua, lin, con, b);
an=(h/2)*(fb+(2*aux)+fa);
ea=fabs(an-res);
gotoxy(3,16); cout<<"a = "<<a<<" "<<char(159)<<"(a) = "<<fa<<" Aa =
"<<res;
gotoxy(3,17); cout<<"b = "<<b<<" "<<char(159)<<"(b) = "<<fb<<" Ea = ";
printf("%.2f",ea);
getch();
do{
gotoxy(3,20); cout<<"Desea continuar? >| |<";
gotoxy(3,21); cout<<">S/N<";
gotoxy(23,20);cin>>op;
switch(op){
case 's':
case 'S':
k++;
break;
case 'n':
case 'N':
j++;
k++;
break;
default:
error(15,21,2);
k=1;
break;
}
}while(k==1);
}
}
i=j;
}while(i==1);
}
gotoxy(20,20); cout<<"Hasta luego =D";
gotoxy(1,26);
return 0;
}
Resultado en pantalla:
#include<iostream>
#include<conio.h>
#include<math.h>
#include<C:\Users\ferch\Desktop\tareas\metodos\NewLibs\artist.h>
using namespace std;

void integralbomnita(){
gotoxy(4,9); cout<<char(159)<<"="<<"[ ]"<<"x"<<char(253)<<"+[ ]x+[ ]";
}
int clear(int fin){
textbackground(WHITE);
for(int n=8;n<=fin;n++){
for(int m=47;m<80;m++){
gotoxy(m,n); cout<<" ";
}
Sleep(50);
}
}
float f(float a, float b, float c, float x){
return ((a*x*x)+(b*x)+c);
}
int main(){
int j=1, i=1, op, lit, cont,da;
char mens;
float cua, lin, con, root, fa, fb, roota, rootb, ep,a, b, x, y;
float pi[50], ec[50];
char opc;
while(j==1){
i=1;
latabla();
integralbomnita();
gotoxy(3,7); cout<<"Dame el valor >Cuadrado< ";
gotoxy(7,9); cin>>cua;
gotoxy(3,7); cout<<"Dame el valor >Lineal< ";
gotoxy(15,9); cin>>lin;
gotoxy(3,7); cout<<"Dame el valor >constante<";
gotoxy(23,9); cin>>con;
do{
gotoxy(3,7); cout<<"Dame el valor [b] --> ";
gotoxy(25,7);cin>>b;
gotoxy(3,7); cout<<"Dame el valor [a] --> ";
gotoxy(25,7); cin>>a;
if(a>b) i++;
else{ error(30,7,3);
}
}while(i==1);
gotoxy(3,7); cout<<"Dame el error propuesto: ";
cin>>ep;
gotoxy(3,7); cout<<"Dame un limite de itineraciones: ";
cin>>lit;
i=1;
fa=f(cua,lin,con,a);
fb=f(cua,lin,con,b);
root=fa*fb;
textcolor(BLUE);
gotoxy(4,11); cout<<char(159)<<"a = "<<fa;
gotoxy(4,12); cout<<char(159)<<"b = "<<fb;
gotoxy(2,14);
textcolor(BLACK);
if(root>0){
cout<<"La funcion "<<char(159)<<"(x)=";
}
else{
cout<<"para "<<char(159)<<"(x)=";
}
textcolor(BLUE);
if(cua!=0) cout<<cua<<"x"<<char(253);
if(lin>0) cout<<"+"<<lin<<"x";
if(lin<0) cout<<lin<<"x";
if(con<0) cout<<con;
if(con>0) cout<<"+"<<con;
if(root<0){
roota=(-(lin)+sqrt(pow(lin,2)-4*cua*con))/(2*cua);
rootb=(-(lin)-sqrt(pow(lin,2)-4*cua*con))/(2*cua);
if(roota>b && roota<a) root=roota;
else root=rootb;
x=a;
y=b;
i=1;
pi[i]=(x+y)/2;
ec[i]=fabs(root-pi[i]);
if(ec[i]>ep){
if(pi[i]<root) y=pi[i];
}
else x=pi[i];

textcolor(48);
gotoxy(2,13); printf("La raiz es %.6f, o bien %.2f", pi[i], root);
gotoxy(2,14); printf("con un error de %.6f", ec[i]);
gotoxy(2,15); printf("Encontrada en la iteracion: %d", i);
gotoxy(2,16); printf("Entre los valores: %.2f y %.2f",b,a);
tabla:
gotoxy(2,17); cout<<"[m] tabla || [f] terminar";
opc=getch();
}
else{
textcolor(RED);
cout<<" NO";
textcolor(BLACK);
cout<<" tiene raiz en "<<b<<", "<<a;
}

Beep(440,500);
i=1;
do{
textcolor(BLACK);
textbackground(WHITE);
gotoxy(2,22);cout<<"Desea hacer otro calculo? [1]Si || [2] no ";
gotoxy(4,23);cout<<"--> "; cin>>op;
if(op<1 || op>2){
error(10,24,3);
}
else{
i++;
}
}while(i==1);
j=op;
}
gotoxy(30,20); cout<<"Hasta lueguito =D";
gotoxy(1,26);
return 0;
}
Resultado en pantalla:
//metodo simpson multiple

#include<iostream>
#include<conio.h>
#include<math.h>
#include<C:\Users\ferch\Desktop\tareas\metodos\NewLibs\artist.h>
using namespace std;
void integralbomnita();

float ec(float tre, float a, float b, float c, float x){


float exe;
exe=(tre*pow(x,3))+(a*pow(x,2))+(b*x)+c;
return exe;
}
int clean(float curv){
int x;
x=11+curv;
for(int n=x;n>=11;n--){
for(int m=36;m<=59;m++){
gotoxy(m,n); cout<<" ";
}
Sleep(40);
}
}
int main(){
int i=1,k=3,c=5578, j=1, n, ctrl, ta;
float fx[100];
char op;
float a, b, res, ea, an=0, aa, bb, aux=0, auxb=0, sinso, fa, fb, xi, cub, cua, lin, con, x, xf, bip=0;
float h, y;
getch();
while(j==1){
do{
if(bip==0) Beep(261,400);
latabla();
if(bip==0) Beep(349,400);
integralbomnita();
if(bip==0) Beep(440,400);
bip++;
Beep(261.63,80);
gotoxy(3,7); cout<<"Dame el valor >Cubico< ";
gotoxy(6,11); cin>>cub;
Beep(349.23,80);
gotoxy(3,7); cout<<"Dame el valor >Cuadrado< ";
gotoxy(11,11); cin>>cua;
Beep(261.63,80);
gotoxy(3,7); cout<<"Dame el valor >Lineal< ";
gotoxy(16,11); cin>>lin;
Beep(349.23,80);
gotoxy(3,7); cout<<"Dame el valor >Constante< ";
gotoxy(20,11); cin>>con;;
Beep(261.63,80);
gotoxy(3,7); cout<<"Dame el valor >b< ";
gotoxy(5,13);cin>>b;
Beep(349.23,80);
gotoxy(3,7); cout<<"Dame el valor >a<";
gotoxy(5,9); cin>>a;
Beep(261.63,80);
gotoxy(3,7); cout<<"N de curvas a calcular: | ";
cin>>n;
gotoxy(3,7); cout<<"____ Calculando . . . ____ ";
if(a<=b || n>10|| n<=0){
error(50,15,5);
}
else{
if(b==555 && a==666){
gotoxy(20,20); cout<<"Hasta luego =D";
return 0;
}
aa=(((cub*pow(a,4))/4)+(cua*pow(a,3))/3)+((lin*a*a)/2)+con*a;
bb=(((cub*pow(b,4))/4)+(cua*pow(b,3))/3)+((lin*b*b)/2)+con*b;
res=aa-bb;
h=(a-b)/(n*2);
//suma de impares
ta=1;
aux=0;
xi=b+h;
for(x=xi;x<=a;x+=2*h){
fx[ta]=ec(cub,cua,lin,con,x);
aux+=fx[ta];
ta+=2;
}
//suma de pares
ta=2;
xi=b+2*h;
auxb=0;
y=12;
for(x=xi;x<=a-h;x+=2*h){
fx[ta]=ec(cub, cua, lin, con, x);
auxb+=fx[ta];
ta+=2;
}
fa=ec(cub, cua, lin, con, a);
fb=ec(cub, cua, lin, con, b);
sinso=(h/3)*(fa+(4*aux)+(2*auxb)+fb);
ea=res-sinso;
textcolor(LIGHTRED);
Beep(293.66,80);
Beep(523.25,80);
gotoxy(4,15); cout<<"___Area analítica: "<<res;
gotoxy(4,16); cout<<"___________Altura: "<<h;
gotoxy(4,17); cout<<"___________Curvas: "<<n;
gotoxy(4,18); cout<<"_Area por Simpson: "<<sinso;
gotoxy(4,19); cout<<"__Margen de error: "; printf("%.2f",ea);
i=3;
while(i!=1){
textbackground(WHITE);
textcolor(GREEN);
gotoxy(38,7); cout<<"Tabla de x impares_[I]";
gotoxy(38,8); cout<<"Tabla de x pares___[P]";
gotoxy(38,9); cout<<"_____Terminar______[B]";
textcolor(LIGHTGRAY);
gotoxy(70,8); cout<<">| |<"; gotoxy(73,8); cin>>op;
y=12;
switch(op){
case 'i':
case 'I':
textbackground(MAGENTA);
textcolor(LIGHTCYAN);
clean(n);
ta=1;
xi=b+h;
for(int y=37;y<=58;y++){
gotoxy(y,11);cout<<char(205);
}
gotoxy(42,11);cout<<char(203);
gotoxy(49,11);cout<<char(203);
for(x=xi;x<=a;x+=2*h){
gotoxy(38,y);cout<<"x"<<ta; gotoxy(42,y); cout<<char(186);
if(x<0){
gotoxy(44,y); cout<<x<<" "; gotoxy(49,y);
cout<<char(186)<<" "; printf("%.4f",fx[ta]);
}
else{
gotoxy(45,y); cout<<x<<" "; gotoxy(49,y);
cout<<char(186)<<" "; printf("%.4f",fx[ta]);
}
y++;
ta+=2;
Sleep(200);
}
Beep(440,250);
break;
case 'p':
case 'P':
textbackground(LIGHTCYAN);
textcolor(BLUE);
clean(n);
for(int y=37;y<=58;y++){
gotoxy(y,11);cout<<char(205);
}
gotoxy(42,11);cout<<char(203);
gotoxy(49,11);cout<<char(203);
ta=2;
xi=b+2*h;
for(x=xi;x<=a-h;x+=2*h){
gotoxy(38,y);cout<<"x"<<ta; gotoxy(42,y); cout<<char(186);
if(x<0){
gotoxy(44,y); cout<<x<<" "; gotoxy(49,y);
cout<<char(186)<<" "; printf("%.4f",fx[ta]);
}
else{
gotoxy(45,y); cout<<x<<" "; gotoxy(49,y);
cout<<char(186)<<" "; printf("%.4f",fx[ta]);
}
y++;
ta+=2;
Sleep(200);
}
Beep(440,250);
break;
case 'b':
case 'B':
clean(n);
i=1;
break;
default:
error(68,22,3);
break;
}
}
do{
textcolor(BLACK);
gotoxy(3,21); cout<<"Desea continuar? >| |<";
gotoxy(3,22); cout<<">S/N<";
gotoxy(23,21);cin>>op;
switch(op){
case 's':
case 'S':
k++;
break;
case 'n':
case 'N':
j++;
k++;
break;
default:
error(15,21,2);
k=1;
break;
}
}while(k==1);
}
i=j;
}while(i==1);
}
textcolor(RED);
gotoxy(20,21); cout<<"Hasta luego =D";
gotoxy(1,26);
return 0;
}
void integralbomnita(){
textcolor(BLUE);
gotoxy(4,9); cout<<char(218)<<"a";
gotoxy(4,10); cout<<char(179);
gotoxy(2,11); cout<<"A="<<char(179)<<" °°"<<"x"<<char(252)<<"+°°"<<"x"<<char(253)<<"+°°"<<"x+°°";
gotoxy(4,12); cout<<char(179);
gotoxy(4,13); cout<<char(217)<<"b";
textcolor(BLACK);
}
Resultado en pantalla:
v
//método de la bisección
#include<iostream>
#include<conio.h>
#include<math.h>
#include<C:\Users\ferch\Desktop\tareas\metodos\NewLibs\artist.h>
using namespace std;
float cua, lin, con, xi, xf, a, ep;
int da, lit, j=1, i=1;
void integralbomnita(){
textcolor(BLUE);
gotoxy(4,9); cout<<char(159)<<"="<<"[ ]"<<"x"<<char(253)<<"+[ ]x+[ ]";
}
float f(float x){
return ((cua*x*x)+(lin*x)+con);
}
float df(float x){
return ((2*cua*x)+lin);
}
int pollito(){
int ban;
float a;
char z;
ban=0;
gotoxy(16,11); cout<<"i "<<char(186)<<" xi "<<char(186)<<" xf";
gotoxy(15,12);cout<<char(205)<<char(205)<<char(205)<<char(206)<<char(205)<<char(205)<<char(205)<<char(205)
<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(206)<<char(205)<<char(205)<<
char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205);
for(i=1;i<=lit;i++){
j=i;
xf=xi-(f(xi)/df(xi));
a=fabs(xf-xi);
if(a>ep){
gotoxy(16,i+12); printf("%d ", i); cout<<char(186); printf(" %.7f ",xi); cout<<char(186); printf(" %.7f",
xf);
xi=xf;
continue;
}
else{
textcolor(LIGHTMAGENTA);
gotoxy(13,i+12); cout<<"-------------------------------";
textcolor(BLACK);
gotoxy(13,i+13); cout<<"La raiz es: ";
textcolor(CYAN);
printf(" %.6f",xi);
textcolor(BLACK);
printf(" encontrada en la iteracion %d",j-1);
textcolor(LIGHTMAGENTA);
gotoxy(13,i+14); cout<<"-------------------------------";
Beep(420,200);
ban=1;
i=lit;
continue;
}
Sleep(80);
}
if(ban==0){
gotoxy(18,i+14); printf("raiz inexistente con las iteraciones propuestas");
}
}
int main(){
int opc=1;
do{
latabla();
integralbomnita();
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame el valor >Cuadrado< ";
textcolor(LIGHTRED);
Beep(420,200);
gotoxy(7,9); cin>>cua;
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame el valor >Lineal< ";
textcolor(LIGHTRED);
Beep(420,200);
gotoxy(15,9); cin>>lin;
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame el valor >constante<";
Beep(420,200);
textcolor(LIGHTRED);
gotoxy(22,9); cin>>con;
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame el valor [a] --> ";
Beep(420,200);
textcolor(LIGHTRED);;
gotoxy(25,7); cin>>xi;
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame el error propuesto: ";
Beep(420,200);
textcolor(LIGHTRED);
cin>>ep;
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame un limite de itineraciones: ";
Beep(420,200);
textcolor(LIGHTRED);
cin>>lit;
pollito();
Sleep(800);
i=1;
while(i==1){
gotoxy(13,21); cout<<"-------------------------------";
textcolor(BLACK);
gotoxy(3,22); cout<<"Desea hacer otro calculo? [1]Si || [2]No |--> ";
cin>>opc;
if(opc==1 || opc==2){
i++;
}
else error(30,i+15,3);
}
}while(opc==1);
gotoxy(30,23); cout<<"Hasta lueguito =D";
gotoxy(1,26);
return 0;
Resultado en pantalla:
}
#include<iostream>
#include<conio.h>
#include<windows.h>
#include<math.h>
#include<C:\Users\ferch\Desktop\tareas\metodos\NewLibs\artist.h>

using namespace std;

int n,lin,col,c,A,B,C,i;
float pi,ep,ec,fxi,f_xi,xii;

int tang(){

float F (float x);


float Fd (float w);
inicio:
system("CLS");
latabla();
textcolor (5); gotoxy(20,7); printf("Metodo de la tangente");
textcolor (RED); gotoxy(20,8); cout<<char(159); cout<<"(x)=[ ]x";cout<<char(253);cout<<char(241);cout<<"[
]x"<<char(241);cout<<"[ ]";
gotoxy(26,8); cin>>A;
gotoxy(33,8); cin>>B;
gotoxy(39,8); cin>>C;
textbackground (YELLOW);
pi=0;
textcolor (RED); gotoxy(20,10);cout<<"teclea el punto de inicio (Pi)= ";
gotoxy(51,10); cin>>pi;

gotoxy(20,12);printf(" Teclea el margen de error=");


scanf("%f", &ep);
gotoxy(20,13); printf ("teclea el numero de iteraciones n=");
scanf("%d",&n);
getch ();
latabla();

for(lin=9;lin<=21;lin++)
{
textcolor(BLACK);
gotoxy(7,lin);printf("%c",186);
gotoxy(30,lin);printf("%c",186);
gotoxy(45,lin);printf("%c",186);
gotoxy(60,lin);printf("%c",186);
gotoxy(69,lin);printf("%c",186);
}

for(col=4;col<=77;col++)
{
textcolor(BLACK);gotoxy(col,11);printf("%c",205);
}

textcolor(MAGENTA);
gotoxy(7,11);printf("%c",206);
gotoxy(30,11);printf("%c",206);
gotoxy(45,11);printf("%c",206);
gotoxy(60,11);printf("%c",206);
gotoxy(69,11);printf("%c",206);

textcolor(7);gotoxy(4,9);printf("N°");
gotoxy(14,9);printf("Pi");
gotoxy(36,9);printf("F(xi)");
gotoxy(49,9);printf("F'(xi)");
gotoxy(63,9);printf("xi+1");
gotoxy(72,9);printf("Ec");

i=1;

do{
for(int filas=12;filas<=21;filas++)
{
gotoxy(4,filas);printf(" ");
gotoxy(8,filas);printf(" ");
gotoxy(31,filas);printf(" ");
gotoxy(46,filas);printf(" ");
gotoxy(61,filas);printf(" ");
gotoxy(70,filas);printf(" ");
}
lin=12;
do
{
Sleep(100);
gotoxy(4,lin);printf("%d",i);
Sleep(100);
gotoxy(8,lin);printf("%0.4f",pi);
fxi=F(pi);
Sleep(100);
gotoxy(31,lin);printf("%.4f",fxi);
f_xi=Fd(pi);
gotoxy(46,lin);printf("%.4f",f_xi);
xii=pi-(fxi/f_xi);
Sleep(100);
gotoxy(61,lin);printf("%.4f",xii);
ec=fabs(xii-pi);
Sleep(100);
gotoxy(70,lin);printf("%.4f",ec);
pi=xii;
lin++;
i++;
}while(lin<=21 && i<=n && ep<ec);
getch();
}while(i<=n && ep<ec);

getch();
latabla();
if (i>n){
gotoxy (15,7); printf ("\n raiz inexistente en este numero de iteraciones");}

else {
i--;
gotoxy (15,7); printf("\nLa raiz aproximada es: %.4f encontrada en el numero de interacion: %d",xii,i);}

printf ("\n Desea calcular otra raiz? (s/n): ");


c=getch();
if (c=='S'|| c=='s')goto inicio;

printf ("\n Weno shao");


getch ();
return 0; }

float Fd (float w){


return (2*A*w+B);
}
Resultado en pantalla:
#include<iostream>
#include<conio.h>
#include<windows.h>
#include<math.h>
#include<C:\Users\ferch\Desktop\tareas\metodos\NewLibs\artist.h>
using namespace std;
float cua, lin, con, xi, xf, a, ep, b, ec, xi1;
int da, lit, j=1, i=1;
void integralbomnita(){
textcolor(BLUE);
gotoxy(4,9); cout<<char(159)<<"="<<"[ ]"<<"x"<<char(253)<<"+[ ]x+[ ]";
}
float f(float x){
return ((cua*x*x)+(lin*x)+con);
}
int pollito(){
xi=a;
gotoxy(3,11); cout<<"it "<<char(186)<<" "<<char(159)<<"(a) "<<char(186)<<" "<<char(159)<<"(b)
"<<char(186)<<" xi "<<char(186)<<" Ec ";
gotoxy(3,12);cout<<char(205)<<char(205)<<char(205)<<char(206)<<char(205)<<char(205)<<char(205)<<char(205)<
<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(206)<<char(205)<<char(205)<<char(205)<<c
har(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(206)<<char(205)<<char(205)<<cha
r(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(206)<<char(205)<<char(2
05)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205)<<char(205);
for(i=1;i<=lit;i++){
xi1=b-(f(b)*((a-b)/(f(a)-f(b))));
ec=fabs(xi1-xi);
gotoxy(3,12+i); cout<<i<<" ";
gotoxy(6,12+i);printf("%c%.4f",186,f(a));
gotoxy(17,12+i);printf("%c%.4f",186,f(b));
gotoxy(28,12+i);printf("%c%.4f",186,f(xi1));
gotoxy(39,12+i);printf("%c%.4f",186,f(ec));
xi=xi1;
if(ec<ep){
i=1000;
break;
}
if((f(xi1) * f(b))>0){
b=xi1;
continue;
}
if((f(xi1) * f(b))<0){
a=xi1;
continue;
}
}
gotoxy(10,13+i); printf("La raiz es =%0.4f Error = %0.4f",xi1,ec);
}
int main(){
int opc=1;
do{
latabla();
integralbomnita();
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame el valor >Cuadrado< ";
textcolor(LIGHTRED);
Beep(420,200);
gotoxy(7,9); cin>>cua;
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame el valor >Lineal< ";
textcolor(LIGHTRED);
Beep(420,200);
gotoxy(15,9); cin>>lin;
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame el valor >constante<";
Beep(420,200);
textcolor(LIGHTRED);
gotoxy(22,9); cin>>con;
textcolor(LIGHTGREEN);
interv:
gotoxy(3,7); cout<<"Dame el valor [a] --> ";
Beep(420,200);
textcolor(LIGHTRED);;
gotoxy(25,7); cin>>a;
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame el valor [b] --> ";
Beep(420,200);
textcolor(LIGHTRED);
gotoxy(25,7); cin>>b;
if(b<=a){
error(3,12,5);
goto interv;
}
if(f(a)*f(b)>0){
error(3,12,5); cout<<"No existe raiz en el intervalo propuesto";
gotoxy(3,12); cout<<" ";
}
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame el error propuesto: ";
Beep(420,200);
textcolor(LIGHTRED);
cin>>ep;
textcolor(LIGHTGREEN);
gotoxy(3,7); cout<<"Dame un limite de itineraciones: ";
Beep(420,200);
textcolor(LIGHTRED);
cin>>lit;
pollito();
Sleep(800);
i=1;
while(i==1){
textcolor(BLACK);
gotoxy(50,9); cout<<"Desea hacer otro calculo?"; gotoxy(50,10);cout<<"[1]Si || [2]No |--> ";
cin>>opc;
if(opc==1 || opc==2){
i++;
}
else error(30,i+15,3);
}
}while(opc==1);
gotoxy(50,9); cout<<" "; gotoxy(50,10);cout<<" ";
gotoxy(50,9); cout<<"Hasta lueguito =D";
gotoxy(1,26);
return 0;
}
#include<iostream>
#include<conio.h>
#include<math.h>
#include<stdio.h>
#include<C:\Users\ferch\Desktop\tareas\metodos\NewLibs\artist.h>

using namespace std;


float x[20][21]={{0,15,0,0,0},
{0,1,1,1,2},
{0,2,3,5,11},
{0,1,-5,6,29}};
float res[20];
int n, m, i, j, pos;
void impresion(int y){
for(i=1;i<=n;i++){
pos=8;
for(j=1;j<=m;j++){
gotoxy(pos,i+y);
if(j<m){
if(x[i][j]<=0||j==1){
printf(" %.2fX%d%d ", x[i][j],i, j);
}
else printf(" +%.2fX%d%d ", x[i][j],i, j);
}
else cout<<" = "<<x[i][j]<<" ";
if(j<n) pos+=12;
else pos+=11;
}
cout<<endl;
}
}
void gauss(){
int a, b=1, piv=1, k;
float suma;
float cont;
while(x[n][n]!=1){
cont=x[piv][piv];
for(a=1;a<=m;a+=1){
colorsini(1);
gotoxy(3,20);
cout<<"X"<<piv<<a<<" = "<<x[piv][a]<<"/"<<cont<<" = "<<x[piv][a]/cont;
colorsini(0); cout<<" ";
Sleep(800);
x[piv][a]=x[piv][a]/cont;
}
cout<<endl;
impresion(11+n);
piv++;
Sleep(800);
if(x[n][n]==1) break;
for(b=1;b<=n;b++){
cont=x[b][piv-1];
if(b!=piv){
for(a=piv-1;a<=m;a++){
colorsini(1);
gotoxy(3,20);
cout<<"X"<<b<<a<<" = "<<x[b][a]<<" - "<<cont<<"*"<<x[1][a]<<" = "<<x[b][a]-
(cont)*x[piv][a];
colorsini(0); cout<<" ";
if(x[b][a]==0) x[b][a]=0;
else x[b][a]-=(cont)*x[piv][a];
Sleep(800);
}
}
impresion(11+n);
Sleep(800);
}
if(x[n][n]==1) break;
}
//calculo de x's.
suma=0.0;
res[n]=x[n][m];
for(i=1;i<=m-1;i++){
j=m-i;
k=j+1;
for(k=j;k<=m;k++){
suma=suma+x[j][k]*res[k];
}
res[j]=x[j][m]-suma;
suma=0.0;
}
gotoxy(2,23); cout<<"Procesos finalizado, presiona una tecla para ver resultados (-----)";
}
void capture(int y){
for(i=1;i<=n;i++){
pos=8;
for(j=1;j<=m;j++){
gotoxy(pos,i+y);
if(j<m) printf("x%d", j);
else cout<<"=";
if(j<n) pos+=8;
else pos+=3;
}
pos=5;
for(j=1;j<=m;j++){
gotoxy(pos,i+y);
cin>>x[i][j];
pos+=8;
}
}
}
void resultados(){
latabla();
impresion(8);
gotoxy(15,11+n);
cout<<"Valores de las "<<n<<" x: ";
for(i=1;i<=n;i++){
gotoxy(2,11+n+i); cout<<"X"<<i<<" = "<<res[i];
}
}
int main(){
int op;
latabla();
textcolor(LIGHTRED);
gotoxy(15,8); cout<<"---------]Metodo de Gauss[---------";
textcolor(LIGHTGREEN);
gotoxy(4,10); cout<<"Introduce el tamaño de tu sistema de ecuaciones -->] [<--";
textcolor(CYAN);
gotoxy(57,10); cin>>n;
m=n+1;
capture(11);
textcolor(LIGHTMAGENTA);
gotoxy(60,23); cout<<"Calculando"; Beep(261.626,500); cout<<" . "; Beep(261.626,500); cout<<" . ";
Beep(261.626,500); cout<<" . "; Beep(391.995,500);
latabla();
gotoxy(25,7); cout<<" ---Matriz introducida---";
impresion(8);
Sleep(250);
impresion(11+n);
gotoxy(25,10+n); cout<<" ---Modificando datos---";
gauss();
cout<<endl;
impresion(11+n);
resultados();
gotoxy(10,22); cout<<" Desea continuar?| [1]Si || [2]No |----> ";
cin>>op;
getch();
return 0;
}

Dd
Resultado en pantalla:

También podría gustarte