Aqui les traigo el codigo del metodo de la falsa posicion hecho en matlab.
El codigo es el siguiente :
Fx=input('Ingrese la funcion: ','s'); a=input('Ingrese a : '); c=input('Ingrese c : '); e=input('Ingrese el error : '); x=a; Fa=eval(Fx); x=c; Fc=eval(Fx); fprintf('\n %6s %7s %8s %10s %8s %8s %8s \n ','A','B','C','F(a)','F(b)','F(c)','|c-a|'); while abs(c-a)>e b=(c*Fa-a*Fc)/(Fa-Fc); x=b; Fb=eval(Fx); fprintf('\n %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f \n',a,b,c,Fa,Fb,Fc,abs(c-a)); if abs(Fc)<e break; else if Fa*Fb<=0 c=b; Fc=Fb; else a=b; Fa=Fb; end end end fprintf('\nEl resultado sera %.4f',b); ezplot(Fx);%graficamos la funcion grid on;
15 comentarios :
▼▲ Mostrar / Ocultar comentariosOrale.. que buen aporte has hecho me ha servido de mucho, solo que tengo una duda sobre la grafica que resulta... Espero poder contactarte.
cuando escribo algunas funciones, anda perfecto. pero con otras cae en un ciclo infinito y se me cuelga el matlab. =S
Bueno no todo es perfecto, pero el algoritmo funciona muy bien para las funciones mas comunes (cuadraticas, cubicas, funcion seno coseno, etc...)
MUY BUEN PROGRAMA, LA CORRI EN EL MATLAB Y FUNCIONO PERFECTAMENTE, AUNQUE LA VERDAD AUN NO LE ENTIENDO MUY BIEN A LOS COMANDOS QUE SE UTILIZAN
el maximo de iteraciones???
komo debe de ser la sintaxis de la funcion?
no funciona dice q es un problema char
ME MARCA ESTE ERROR
??? Undefined function or method 'REGLA' for input arguments of type 'char'.
no funciona para funciones con exp()
muy bueno amigo.. Gracias por subirlo
Disculpa, estoy utilizando tu codigo, tengo una duda, como puedo hacer que el error sea menor a la cantidad que introduzco? por ejemplo introduzco 0.1 y me da cantidades como 0.1897, no se si me explique, pero quisiera saber que hacer para que el error que quiero sea menor a lo que introduzco por ejemplo que me arroje resultados como 0.98 o etc. Agradezco una respuesta
Excelente aporte!
Tiene un error que causa el loop:
Donde dice:
if abs(Fc)<e
Deberia decir:
if abs(Fb)<e
Buenas noches, disculpa pero a mi el matlab no me reconoce la palabra "eval" como un comando, me podrías ayudar por favor
no corre con un error 0.01
que seria a, c y e?
ayuda por favor
1. Desarrollar la función [aprox1, N1, aprox2, N2] = metodoscerrados(e) que implemente los métodos de bisección y falsa posición para aproximar el valor de √3 hasta obtener un cierto error e. La función debe regresar las aproximaciones obtenidas aprox1, aprox2 y el número de iteraciones necesario para alcanzar dicho error N1 y N2, respectivamente
Publicar un comentario
Deja tus comentarios respecto al contenido de este post