InicioInfoMetodos Numericos - Ecuaciones No lineales
Hola amigos, para aquellos que tengan o hallan tenido que luchar con scilab, aqui les dejo un pequeño post con los metodos numericos mas utilizados para encontrar raices de una funcion; por ejemplo biseeccion, punto fijo, newton, secante y regula falsi: saludos y ojala les sirva:

\\Metodo de Biseccion
function biseccion(f,a,b,exactitud,n)
i=1
while i<=n
p=a+(b-a)/2
x=p
if eval(f)==0 or (b-a)/2 < exactitud
printf("El procedimiento fue exitoso"
disp('p = ',p,' despues de ',i,' iteraciones')
abort
end
i=i+1
x=a
k=eval(f)
x=p
if k*eval(f)>0
a=p
else
b=p
end
end
printf('el metodo fracaso')
disp('La aproximacion es = ',p,' despues de ',i,' iteraciones')
abort
endfunction

\\Metodo de Punto Fijo
\\Aun falta validar si la funcion g(x) ingresada tiene de verdad
\\un punto fijo
function punto_fijo(g,p0,exactitud,n)
i=1
while i<=n
x=p0
p=eval(g)
if abs(p-p0) < exactitud
printf('EL procedimiento fue exitoso')
disp('p = ',p,' despues de ',i,' iteraciones')
abort
end
i=i+1
p0=p
end
printf('El metodo fracaso')
disp('La aproximacion es = ',p,' despues de ',i,' iteraciones')
abort
endfunction

\\Funcion Secante
function secante(f,p0,p1,exactitud,n)
i=2
x=p0
q0=eval(f)
x=p1
q1=eval(f)
while i<=n
p=p1-q1*(p1-p0)/(q1-q0)
if abs(p-p1) < exactitud
printf('EL procedimiento fue exitoso')
disp('p = ',p,' despues de ',i,' iteraciones')
abort
end
i=i+1
p0=p1
q0=q1
p1=p
x=p
q1=eval(f)
end
printf('El metodo fracaso')
disp('La aproximacion es = ',p,' despues de ',i,' iteraciones')
abort
endfunction

\\Funcion Newton
\\Quien logre encontrar el chiste con el comando derivative; que
\\me explique por favor, el algoritmo es exactamente este; pero
\\no deriva..
function newton(f,p0,exactitud,n)
i=1
while i<=n
x=p0
p=p0-eval(f)/derivative(f,x)
if abs(p-p0) < exactitud
printf('EL procedimiento fue exitoso')
disp('p = ',p,' despues de ',i,' iteraciones')
abort
end
i=i+1
p0=p
end
printf('El metodo fracaso')
disp('La aproximacion es = ',p,' despues de ',i,' iteraciones')
abort
endfunction

\\Funcion Regula Falsi, o posicion falsa
function regula(f,p0,p1,exactitud,n)
i=2
x=p0
q0=eval(f)
x=p1
q1=eval(f)
while i<=n
p=p1-q1*(p1-p0)/(q1-q0)
if abs(p-p1) < exactitud
printf("El procedimiento fue exitoso"
disp('p = ',p,' despues de ',i,' iteraciones')
abort
end
i=i+1
x=p
q2=eval(f)
if (q2*q1) < 0
p0=p1
q0=q1
end

Nota: El metodo de newton no deriva y la verdad me canse de buscar el error, chevere si alguien le encuentra el chiste y de paso me explica, el resto de programas funcionan a la perfeccion, solo hace falta hacer algunas validacion, por ejemplo en el metodo de punto fijo recordemos que hay un punto fijo si la derivada de f(x) evaluada en el punto es menor que 0, pero bueno ya esta lo dificil...saludos y ojala les sirva

Nota(Sobra claro esta): No quiero creer a nadie "tonto", ni mucho menos pero recuerden estas funciones se copian en el scipad...




Datos archivados del Taringa! original
0puntos
372visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
0visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

No hay comentarios nuevos todavía

Autor del Post

s
shiftry🇦🇷
Usuario
Puntos0
Posts3
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.