JESÚS AVALOS RODRÍGUEZ
Docente del Departamento Académico de Matemáticas
Facultad de Ciencias Físicas y Matemáticas
Universidad Nacional de Trujillo
E-mail: javalos@unitru.edu.pe
Docente del Departamento Académico de Matemáticas
Facultad de Ciencias Físicas y Matemáticas
Universidad Nacional de Trujillo
E-mail: javalos@unitru.edu.pe
ROOTFINDING
Secant Method
www.jesus-avalos.ucoz.com
ALGORITHM CODE:
SecantMethod[x0_,x1_,max_]:=Module[{},k=1;p0=N[x0];p1=N[x1];
Print["p0=",PaddedForm[p0,{16,16}]", f[p0]=",NumberForm[f[p0],16]];
Print["p1=", PaddedForm[p1,{16,16}],", f[p1]=", NumberForm[f[p1],16]];
p2=p1;
p1=p0;
While[k<max, p0=p1;p1=p2; p2=p1-(f[p1](p1-p0))/(f[p1]-f[p0]);
k=k+1;
Print["p "k, "=", PaddedForm[p2,{16,16}],", f[","p"k,"]=",NumberForm[f[p2],16]];];
Print["p =",NumberForm[p2,16]];
Print[" Δp=±"Abs[p2-p1]];
Print["f[p]=",NumberForm[f[p2],16]];]
EXAMPLE:
f[x_]=x^3+x-1
-1+x+x3
SecantMethod[0,1,9]
p0= , f[p0]= 0.0000000000000000 -1.
p1= 1.0000000000000000 , f[p1]= 1.
2 p = 0.5000000000000000 , f[ 2 p ]= -0.375
3 p = 0.6363636363636363 , f[ 3 p ]= -0.1059353869271225
4 p = 0.6900523560209423 , f[ 4 p ]= 0.01863614179998446
5 p = 0.6820204196481856 , f[ 5 p ]= -0.000736518493373528
6 p = 0.6823257814098928 , f[ 6 p ]= -4.847148849740357*10-6
7 p = 0.6823278043590257 , f[ 7 p ]= 1.272670357987948*10-9
8 p = 0.6823278038280184 , f[ 8 p ]= -2.275957200481571*10-15
9 p = 0.6823278038280193 , f[ 9 p ]= 1.665334536937735*10-16
p= 0.6823278038280193
9.99201*10-16 Δp=±
f[p]= 1.665334536937735*10-16
Plot[-1+x+x3,{x,0,1}]
ROOTFINDING
Regula Falsi Method
www.jesus-avalos.ucoz.com
ALGORITHM CODE:
RegulaFalsi[a0_,b0_,m_]:=Module[{},a=N[a0];b=N[b0]; c=(a*f[b]-b*f[a])/(f[b]-f[a]);k=0;
output={{k,a,c,b,f[c]}};
While[k<m, If[Sign[f[b]]==Sign[f[c]],b=c, a=c;];
c=(a*f[b]-b*f[a])/(f[b]-f[a]);
k=k+1;
output=Append[output,{k,a,c,b,f[c]}];];
Print[NumberForm[TableForm[output,TableHeadings->{None,{"k","ak","ck","bk","f[ck]"}}],16]];
Print[" c=",NumberForm[c,16]];
Print[" f[c]=",NumberForm[f[c],16]];]
EXAMPLE:
f[x_]=x^3-2x^2+3x/2
(3 x)/2-2 x2+x3
RegulaFalsi[-1,1,12]
{
{k, ak, ck, bk, f[ck]},
{0, -1., 0.8, 1., 0.432},
{1, -1., 0.6423357664233577, 0.8, 0.4033378536513656},
{2, -1., 0.5072408162536918, 0.6423357664233577, 0.3767843689852098},
{3, -1., 0.3907901518625014, 0.5072408162536918, 0.340431619474261},
{4, -1., 0.2929747128750934, 0.3907901518625014, 0.2929409494830454},
{5, -1., 0.2139490699474353, 0.2929747128750934, 0.2391685443454786},
{6, -1., 0.1526854897957456, 0.2139490699474353, 0.1859620523688113},
{7, -1., 0.1069412526417537, 0.1526854897957456, 0.1387620422415913},
{8, -1., 0.07382866194205702, 0.1069412526417537, 0.1002440660353247},
{9, -1., 0.0504288271173981, 0.07382866194205702, 0.07068535133336745},
{10, -1., 0.03418401370580981, 0.0504288271173981, 0.04897887259222585},
{11, -1., 0.02304895054924056, 0.03418401370580981, 0.03352316243099189},
{12, -1., 0.0154840093511178, 0.02304895054924056, 0.02275021729713151}
}
c= 0.0154840093511178
f[c]= 0.02275021729713151
Concise Program for the Regula Falsi
RegulaFalsi2[a0_,b0_,m_]:=Module[{},a=N[a0];b=N[b0];Ya=f[a];Yb=f[b];
c=(a*Yb-b*Ya)/(Yb-Ya); Yc=f[c]; k=0;While[k<m,
If[Sign[Yb]==Sign[Yc],
b=c;
Yb=Yc,
a=c;
Ya=Yc;];
c=(a*Yb-b*Ya)/(Yb-Ya);
Yc=f[c];
k=k+1;];
Print[" c=", NumberForm[c,11]];
Print["f[c]=", NumberForm[Yc,11]];]
EXAMPLE:
f[x_]=x^3-2x^2+3x/2
(3 x)/2-2 x2+x3
RegulaFalsi2[-1,1,12]
c= 0.015484009351
f[c]= 0.022750217297
Plot[(3 x)/2-2 x2+x3,{x,-1.,1.}]
ROOTFINDING
Fixed Point Method
www.jesus-avalos.ucoz.com
ALGORITHM CODE:
FixedPointIteration[x0_,max_]:=Module[{},p0=N[x0];k=0;
Print["0 p=",PaddedForm[p0,{15,15}]];
While[k<max,Module[{},p1=g[p0];k=k+1;
Print[" p"k, "=", PaddedForm[p1,{15,15}]];
p0=p1;];];
p=p0;
Print[" "];
Print["The function is g[x]=", g[x]];
Print[" p=",PaddedForm[p,{15,15}]];
Print["g[p]=",PaddedForm[g[p],{15,15}]];];
EXAMPLE: x^3+x-1=0
g[x_]=(1-x)1/3
FixedPointIteration[0.5,12]
0 p= 0.500000000000000
p = 0.793700525984100
2 p = 0.590880113275177
3 p = 0.742363932168006
4 p = 0.636310203481661
5 p = 0.713800814144207
6 p = 0.659006145622400
7 p = 0.698632605730219
8 p = 0.670448496228072
9 p = 0.690729120589141
10 p = 0.676258924926827
11 p = 0.686645536864490
12 p = 0.679222339897004
13 p = 0.684544005469716
The function is g[x]= (1-x)1/3
p= 0.684544005469716
g[p]= 0.680737373803562
Plot[{x^3+x-1,(1-x)1/3, x},{x,0,1}]
ROOTFINDING
Bisection Method
www.jesus-avalos.ucoz.com
ALGORITHM CODE:
Bisection[a0_,b0_,m_]:=Module[{},a=N[a0];b=N[b0]; c=(a+b)/2; k=0;
output={{k,a,c,b,f[c]}};
While[k<m,
If[Sign[f[b]]==Sign[f[c]],
b=c, a=c;];
c=(a+b)/2;
k=k+1;
output=Append[output,{k,a,c,b,f[c]}];];
Print[NumberForm[TableForm[output,
TableHeadings->{None,{"k","a_k","c_k", "b_k","f[c_k]"}}],16]];
Print[" c=",NumberForm[c,16]];
Print[" Δc=±",(b-a)/2];
Print["f[c]=", NumberForm[f[c],16]];]
EXAMPLE:
f[x_]=x^3+x-1
-1+x+x3
Bisection[0,1,10]
{
{k, a_k, c_k, b_k, f[c_k]},
{0, 0., 0.5, 1., -0.375},
{1, 0.5, 0.75, 1., 0.171875},
{2, 0.5, 0.625, 0.75, -0.130859375},
{3, 0.625, 0.6875, 0.75, 0.012451171875},
{4, 0.625, 0.65625, 0.6875, -0.061126708984375},
{5, 0.65625, 0.671875, 0.6875, -0.02482986450195312},
{6, 0.671875, 0.6796875, 0.6875, -0.006313800811767578},
{7, 0.6796875, 0.68359375, 0.6875, 0.003037393093109131},
{8, 0.6796875, 0.681640625, 0.68359375, -0.001646004617214203},
{9, 0.681640625, 0.6826171875, 0.68359375, 0.0006937412545084953},
{10, 0.681640625, 0.68212890625, 0.6826171875, -0.0004766195779666305}
}
c= 0.68212890625
Δc=± 0.000488281
f[c]= -0.0004766195779666305
Plot[{x^3 + x - 1, (1 - x)^(1/3), x}, {x, 0, 1}]
Las curvas fractales se generan a partir de una curva inicial (a menudo un polígono regular) y una o más curvas de recambio. Repetidamente, cada línea se sustituye por una copia correctamente a escala de una de las curvas de recambio. Los botones muestran la primera iteración de la curva de sustitución utilizado. Para ver la curva inicial, establecer el número de pasos a 0.
CÁLCULO DE ÍNDICE DE MASA CORPORAL (IMC): PROGRAMA HECHO EN OCTAVE GNU
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ÍNDICE DE MASA CORPORAL - IMC
% P=PESO DEL PACIENTE (EN kg)
% E=ESTATURA DEL PACIENTE (EN m)
% Resultado= ÍnDICE DE MASA CORPORAL
% AUTOR:JAR
%https://sites.google.com/unitru.edu.pe/jar
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc, clear
disp(" TABLA DE VALORES IMC\n");
disp(" =================================================\n");
disp("\t IMC :\t CONDICIÓN\t\n");
disp("\t menor a 18.5 :\t bajo peso\n");
disp("\t 18.5 a 24.9 :\t peso normal\n");
disp("\t 25 a 26.9 :\t sobrepeso grado I\n");
disp("\t 27 a 29.9 :\t sobrepeso grado II\n");
disp("\t 30 a 34.9 :\t obesidad tipo I\n");
disp("\t 35 a 39.9 :\t obesidad tipo II\n");
disp("\t 40 a 49.9 :\t obesidad tipo III\n");
disp("\t mayor a 50 :\t obesidad tipo IV\n");
disp(" =================================================\n");
disp("Se necesita tu peso P (en kg) y estatura E (en metros)");
P=input("\n\nIngresa tu peso P:");
E=input("Ingresa tu estatura E:");
if(P<0||E<0)
printf("Dato ingresado inválido, vuelva a ejecutar");
return
endif
Resultado=P/(E^2);
if(Resultado<18.5)
C="Estás bajo de peso.";
elseif(Resultado>=18.5&&Resultado<24.9)
C="Estás con un peso normal.";
elseif(Resultado>25&&Resultado<26.9)
C="Estás con un sobrepeso grado I.";
elseif(Resultado>=27&&Resultado<29.9)
C="Estás con un sobrepeso grado II.";
elseif(Resultado>=30&&Resultado<34.9)
C="Estás con obesidad tipo I.";
elseif(Resultado>=35&&Resultado<39.9)
C="Estás con obesidad tipo II.";
elseif(Resultado>=40&&Resultado<49.9)
C="Estás con obesidad tipo III.";
elseif(Resultado>=50)
C="Estás con obesidad tipo IV.";
endif
fprintf("\n Tienes un índice de masa coroporal es: %f. \n %s",Resultado, C);
%%%%%%%%%%%
PUEDE EJECUTAR DESDE:
https://octave-online.net/bucket~FV2pdyyLb3SGHcxj7ptyvo
https://www.12000.org/index.htm