Académique Documents
Professionnel Documents
Culture Documents
BEGIN
LOCAL MENU;
".>> REGRESION",
".>> Autor");
////METODO DE TAYLOR////
IF MENU == 1 THEN
LOCAL fx,xi,h,n,i,a,xin,x2;
LOCAL v1,v2,et,fx1,fr;
LOCAL fxi,fxn;
LOCAL der,fac;
INPUT({{fx,[8]},xi,xin,n});
h=EVAL(xin-xi);
X:=xi;
fxi:=EVAL(fx);
X:=xin;
fxn:=EVAL(fx);
et:=abs((fxn-fxi)/fxn)*100;
PRINT;
fx:=CAS.diff(fx,X);
fx1:=v1+fx*(xin-xi);
fx:=CAS.diff(fx,X);
fr:=(fx*h^i)/i!;
fx:=fx1+fr;
a:=EVAL(fx);
PRINT("h=:"+h);
PRINT("Fx1=:"+fx1);
PRINT("fx:="+fx);
END;
END;
//////BISECCION///////
IF MENU==2 THEN
LOCAL Gx,Xini,FUNCf,xf,k,iter:=40;
LOCAL calculos,myf,Fx,error_max:=0.0001,FUNCg;
LOCAL error,itfn,a_ini,b_ini;
LOCAL af,bf,cf,fa,fb,fc;
LOCAL fx,n,s,r;
PRINT;
INPUT({{FUNCf,[8],{30,50,1}},{a_ini,[0],{30,20,2}},{b_ini,[0],{30,20,3}},{error_max,[0],{30,20,4}},{iter,[0],{30,20,5}}},"
Método Biseccion Newton Raphson",{"ƒ(x) =","a =","b =","error =","N° iter max ="},{"Ingrese la f(X) en funcion de
X","Escribir valor de a.","Escribir valor de b.","Presición por defecto 0.0001","Ingrese máxima cantidad de
iteraciones"});
Fx:=FUNCf;
myf:=MAKEMAT(0,iter+1,2);
calculos:=MAKEMAT(0,iter,5);
myf(1,1):=a_ini;
myf(1,2):=b_ini;
cf:=(myf(k,1)+myf(k,2))/2;
X:=myf(k,1);
fa:=EVAL(Fx);
X:=myf(k,2);
fb:=EVAL(Fx);
X:=cf;
fc:=EVAL(Fx);
calculos(k,1):=myf(k,1);
calculos(k,2):=myf(k,2);
calculos(k,3):=cf;
calculos(k,4):=fc;
IF fa*fc<0 THEN
af:=myf(k,1);
bf:=cf;
ELSE
af:=cf;
bf:=myf(k,2);
END;
myf((k+1),1):=af;
myf((k+1),2):=bf;
IF ABS(fc)<error_max THEN
BREAK;
END;
itfn:=k;
END;
calculos:=REDIM(calculos,{itfn+1,4});
print("");
print("f(x) = "+FUNCf);
print("");
print("");
print("Valor A: "+a_ini);
print("Valor B: "+b_ini);
print("");
print("");
print("");
wait(-1);
ELSE
//////METODO DE LA FALSA POSICION///////
IF MENU==3 THEN
LOCAL Gx,Xini,FUNCf,xf,k,iter:=40;
LOCAL calculos,myf,Fx,error_max:=0.0001,FUNCg;
LOCAL error,itfn,a_ini,b_ini;
LOCAL af,bf,cf,fa,fb,fc;
PRINT;
INPUT({{FUNCf,[8],{30,50,1}},{a_ini,[0],{30,20,2}},{b_ini,[0],{30,20,3}},{error_max,[0],{30,20,4}},{iter,[0],{30,20,5}}},"
Método de la falsa posición",{"ƒ(x) =","a =","b =","error =","N° iter max ="},{"Ingrese la f(X) en funcion de X","Escribir
valor de a.","Escribir valor de b.","Presición por defecto 0.0001","Ingrese máxima cantidad de iteraciones"});
Fx:=FUNCf;
myf:=MAKEMAT(0,iter+1,2);
calculos:=MAKEMAT(0,iter,5);
myf(1,1):=a_ini;
myf(1,2):=b_ini;
X:=myf(k,1);
fa:=EVAL(Fx);
X:=myf(k,2);
fb:=EVAL(Fx);
cf:=(fa*myf(k,2)-fb*myf(k,1))/(fa-fb);
X:=cf;
fc:=EVAL(Fx);
calculos(k,1):=myf(k,1);
calculos(k,2):=myf(k,2);
calculos(k,3):=cf;
calculos(k,4):=fc;
IF fa*fc<0 THEN
af:=myf(k,1);
bf:=cf;
ELSE
af:=cf;
bf:=myf(k,2);
END;
myf((k+1),1):=af;
myf((k+1),2):=bf;
IF ABS(fc)<error_max THEN
BREAK;
END;
itfn:=k;
END;
calculos:=REDIM(calculos,{itfn+1,4});
print("");
print("f(x) = "+FUNCf);
print("");
print("");
print("Valor A: "+a_ini);
print("Valor B: "+b_ini);
print("");
print("");
wait(-1);
ELSE
IF MENU==4 THEN
LOCAL dFx,Xini,FUNC,xf,Xresult,k,iter:=40;
LOCAL calculos,myf,Fx,yff,error_max:=0.0001,DIV;
LOCAL error,itfn;
PRINT;
INPUT({{FUNC,[8],{30,50,1}},{Xini,[0],{30,20,2}},{error_max,[0],{30,20,3}},{iter,[0],{30,20,5}}},"Método de
Newton",{"ƒ(x) =","Xo =","error =","N° iter max ="},{"Ingrese la f(X) en funcion de X","Ingrese valor xo inicial o aprox.
a la raiz","Presición por defecto 0.0001","Ingrese máxima cantidad de iteraciones"});
myf:=MAKEMAT(0,iter+1,2);
calculos:=MAKEMAT(0,iter,5);
myf(1,1):=Xini;
FOR k FROM 1 TO iter DO
X:=myf(k,1);
Fx:=FUNC;
dFx:=diff(FUNC,X);
DIV:=(Fx)/(dFx);
xf:=EVAL(myf(k,1)-DIV);
error:=ABS(myf(k,1)-xf);
calculos(k,1):=myf(k,1);
calculos(k,2):=EVAL(Fx);
calculos(k,3):=EVAL(dFx);
calculos(k,4):=xf;
calculos(k,5):=trunc(error,7);
myf((k+1),1):=xf;
itfn:=k;
IF ABS(EVAL(Fx))<error_max THEN
BREAK;
END;
END;
calculos:=REDIM(calculos,{itfn,5});
print("");
print("f(x) = "+FUNC);
print("");
print("");
print("");
print("");
print("");
print("");
WAIT(-1);
ELSE
//////METODO DE LA SECANTE///////
IF MENU==5 THEN
LOCAL Gx,Xini,FUNCf,xf,k,iter:=40;
LOCAL calculos,myf,Fx,error_max:=0.0001,FUNCg;
LOCAL error,itfn,a_ini,b_ini;
LOCAL af,bf,cf,fa,fb,fc;
PRINT;
INPUT({{FUNCf,[8],{30,50,1}},{a_ini,[0],{30,20,2}},{b_ini,[0],{30,20,3}},{error_max,[0],{30,20,4}},{iter,[0],{30,20,5}}},"
Método de la secante",{"ƒ(x) =","a =","b =","error =","N° iter max ="},{"Ingrese la f(X) en funcion de X","Escribir valor
de a.","Escribir valor de b.","Presición por defecto 0.0001","Ingrese máxima cantidad de iteraciones"});
Fx:=FUNCf;
myf:=MAKEMAT(0,iter+1,2);
calculos:=MAKEMAT(0,iter,5);
myf(1,1):=a_ini;
myf(1,2):=b_ini;
//cf:=(myf(k,1)+myf(k,2))/2;
X:=myf(k,1);
fa:=EVAL(Fx);
X:=myf(k,2);
fb:=EVAL(Fx);
cf:=myf(k,2)-(fb*(myf(k,2)-myf(k,1))/(fb-fa));
X:=cf;
fc:=EVAL(Fx);
calculos(k,1):=myf(k,1);
calculos(k,2):=myf(k,2);
calculos(k,3):=cf;
calculos(k,4):=fc;
myf((k+1),1):=myf(k,2);
myf((k+1),2):=cf;
IF ABS(fc)<error_max THEN
BREAK;
END;
itfn:=k;
END;
calculos:=REDIM(calculos,{itfn+1,4});
print("");
print("f(x) = "+FUNCf);
print("");
print("");
print("Valor A: "+a_ini);
print("Valor B: "+b_ini);
print("");
print("");
print("");
wait(-1);
ELSE
////METODO DE BULLEN////
IF MENU == 6 THEN
LOCAL fx,x0,x1,x2,x3,i,den;
LOCAL fx0,fx1,fx2,error,ERROR,r;
LOCAL h0,h1,e0,e1,a,b,c,discr;
PRINT;
INPUT({{fx,[8]},x0,x1,x2,ERROR});
i:=2;
r:=1;
REPEAT
X:=x0;
fx0:=EVAL(fx);
X:=x1;
fx1:=EVAL(fx);
X:=x2;
fx2:=EVAL(fx);
h0:=x1-x0;
h1:=x2-x1;
e0:=EVAL((fx0-fx1)/(x0-x1));
e1:=EVAL((fx2-fx1)/(x2-x1));
a:=EVAL((e1-e0)/(h1+h0));
b:=EVAL(a*h1+e1);
c:=fx2;
discr:=√(b^2−(4*a*c));
IF abs(b+discr)>abs(b-discr) THEN
den:=b+discr;
ELSE
den:=b-discr;
END;
x3:=x2+(−2*c)/den;
error:=abs(EVAL((x3-x2)/x3))*100;
x2:=x3;
Spreadsheet.Cell(1,1):="INTER";
Spreadsheet.Cell(1,2):="x0";
Spreadsheet.Cell(1,3):="x1";
Spreadsheet.Cell(1,4):="x2";
Spreadsheet.Cell(1,5):="x3";
Spreadsheet.Cell(1,6):="fx0";
Spreadsheet.Cell(1,7):="fx1";
Spreadsheet.Cell(1,9):="fx2";
Spreadsheet.Cell(1,9):="a";
Spreadsheet.Cell(1,10):="b";
Spreadsheet.Cell(1,11):="c";
Spreadsheet.Cell(i,1):=r;
Spreadsheet.Cell(i,2):=x0;
Spreadsheet.Cell(i,3):=x1;
Spreadsheet.Cell(i,4):=x2;
Spreadsheet.Cell(i,5):=x3;
Spreadsheet.Cell(i,6):=fx0;
Spreadsheet.Cell(i,7):=fx1;
Spreadsheet.Cell(i,8):=fx2;
Spreadsheet.Cell(i,9):=a;
Spreadsheet.Cell(i,10):=b;
Spreadsheet.Cell(i,11):=c;
STARTAPP("Spreadsheet");
i:=i+1;
r:=r+1;
PRINT("fx1="+fx1);
PRINT("fx2="+fx2);
PRINT("h0="+h0);
PRINT("h1="+h1);
PRINT("e0="+e0);
PRINT("e1="+e1);
PRINT("a="+a);
PRINT("b="+b);
PRINT("c="+c);
UNTIL error<ERROR ;
END;
////METODO DE BAISRTOW////
IF MENU == 7 THEN
LOCAL fx,a,n,r,s,sol,j,calc;
INPUT({{fx,[8]},n,r,s});
a:=CAS.coeff(fx);
sol:=CAS.proot(fx);
PRINT;
PRINT(a);
PRINT(sol);
END;
IF MENU == 8 THEN
LOCAL A,B,i,X,XF,X1;
INPUT(i);
A:=MAKEMAT(0,i,2);
EDITMAT(A);
B:=TRN(A);
X:=lagrange(B);
X1:=simplify(X);
PRINT();
END;
///////AUTOR//////
IF MENU==9 THEN
DIMGROB_P(G7,320,240);
RECT(G7);
RECT_P(G7,0,0,320,240,RGB(0,255,255));
TEXTOUT_P("ING. CIVIL",G7,110,25,7,RGB(255,0,50),300);
TEXTOUT_P("ING. CIVIL",G7,112,27,7,RGB(0,0,255),300);
TEXTOUT_P("MÉTODOS NUMÉRICOS",G7,47,62,7,#FFFFFFh,300);
TEXTOUT_P("MÉTODOS NUMÉRICOS",G7,45,60,7,#FF0080h,300);
TEXTOUT_P("DESARROLLADOR :",G7,10,110,1,#1C1C1Ch,300);
TEXTOUT_P("Gmail :",G7,10,120,1,#1C1C1Ch,300);
TEXTOUT_P("mariocs855@gmail.com",G7,105,120,1,RGB(0,0,255),300);
//TEXTOUT_P("------------------",G7,88,205,3,#FFFFFFh,300);
TEXTOUT_P("✘",G7,300,220,5,#FF0040h,200);
BLIT_P(G0,G7);
WAIT(-1);
END;
END;
END;
END;
END;
END;