Matlab - Programacion en Matlabd: Método de la bisección

   
Vista:

Programacion en Matlabd: Método de la bisección

Publicado por Oier (3 intervenciones) el 15/02/2012 22:01:54
Buenas, he creado un script para aplicar el método de la bisección. El código que he creado sólo sirve para la función almacenada en la function f. Lo que quiero hacer es que el usuario pueda introducir cualquier función f y el programa lo calcule, pero no sé como hacer este paso. El código que he creado es éste:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
clear
format short;
a=input('Introduzca el valor de a');
b=input('Introduzca el valor de b');
cont=input('Introduzca el número de iteraciones');
for k=1:1:cont
='editor_indent'>c=(a+b)/2;
e=abs((b-a)/2);
A(k,:)=[k a b c f(c) e];
if f(a)*f(c)<0
='editor_indent'>b=c;
else
='editor_indent'>a=c;
end
end
fprintf('\n k a b c f(c) error \n')
disp(A)
fprintf('Solución: c='), disp(c)
fprintf('f(c)='), disp(f(c))
fprintf('error'), disp(e)


Saludos y gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Matlab
- Código fuente de Matlab
- Cursos de Matlab
- Temas de Matlab
- Chat de Matlab
información
Códigos de Matlab
- Fuerzas de Coulomb
- Derivada Numerica 2 Puntos En Matlab
- LABPaint - Un "min-paint" en MATLAB
Imágen de perfil de JOSE JEREMIAS CABALLERO

Programacion en Matlabd: Método de la bisección

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 15/02/2012 23:45:51
hola Oier.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
clear all
format short;
a=input('Introduzca el valor de a: ');
b=input('Introduzca el valor de b: ');
cont=input('Introduzca el número de iteraciones cont: ');
fun=input('Introduzcal a funcion f(x)=','s');
f=inline(fun);
for k=1:cont
    c=(a+b)/2;
    e=abs((b-a)/2);
    A(k,:)=[k a b c f(c) e];
    if f(a)*f(c)<0
        b=c;
    else
        a=c;
    end
end
fprintf('\n \tk \ta \tb \tc \tf(c) \terror \n')
disp(A)
fprintf('Solución:\n c=%8.5f\n',c)
fprintf('f(c)=%8.5f\n',f(c))
fprintf('error=%8.5f\n',e)



EJECUCION
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
>> biseccion_ayuda
Introduzca el valor de a: 0
Introduzca el valor de b: 2
Introduzca el número de iteraciones cont: 10
Introduzcal a funcion f(x)=exp(x)-2
 
 k 	a 	b 	c 	f(c) 	error
    1.0000         0    2.0000    1.0000    0.7183    1.0000
    2.0000         0    1.0000    0.5000   -0.3513    0.5000
    3.0000    0.5000    1.0000    0.7500    0.1170    0.2500
    4.0000    0.5000    0.7500    0.6250   -0.1318    0.1250
    5.0000    0.6250    0.7500    0.6875   -0.0113    0.0625
    6.0000    0.6875    0.7500    0.7188    0.0519    0.0313
    7.0000    0.6875    0.7188    0.7031    0.0201    0.0156
    8.0000    0.6875    0.7031    0.6953    0.0043    0.0078
    9.0000    0.6875    0.6953    0.6914   -0.0035    0.0039
   10.0000    0.6914    0.6953    0.6934    0.0004    0.0020
 
Solución:
 c= 0.69336
f(c)= 0.00042
error= 0.00195



Saludos.
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
"Detalladar sus preguntas, para recibir respuestas acertadas"
jjcc94@hotmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programacion en Matlabd: Método de la bisección

Publicado por Oier (3 intervenciones) el 16/02/2012 18:16:08
Muchísimas gracias José
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

Programacion en Matlabd: Método de la bisección

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 14/03/2012 01:30:53
ok Oier.
Pregunta Resuelta

Saludos
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
jjcc94@hotmail.com


http://matlabcaballero.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-2
Comentar

Programacion en Matlabd: Método de la bisección

Publicado por moises1 (1 intervención) el 14/03/2012 01:04:41
buenas vi tu codigo esta muy completo pero qusiera saber por que no puedo meter una ecuacion de esta forma 3x^2+3x ??? por favor me haria de mucha ayuda gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

Programacion en Matlabd: Método de la bisección

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 14/03/2012 01:36:53
Hola Moises.
Trata de hacer tu mismo tus codigos.
Al parecer solo haz copiado de otro usario su codigo y lo quieres ejecutar y no puedes ejecutarlos. Asi no vas a aprender matlab, en el mundo de la programacion cada usuario tiene su propio lógica.
Ademas estudia matlab basico.
Bueno te digo esto, porque tu pregunta sencilla. Tu error es: que estas introduciendo mal los datos a matlab por el teclado.
la forma correcta es:
1
3*x^2+3*x



Saludos
JOSE JEREMIAS CABALLERO
Servicios de programacion matlab
Asesor de Proyectos con Matlab
programador en matlab
jjcc94@hotmail.com


http://matlabcaballero.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programacion en Matlabd: Método de la bisección

Publicado por josh josh1234@hotmail.com (1 intervención) el 27/09/2013 04:02:50
disculpes como hago para correr estos codigos en matlab
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programacion en Matlabd: Método de la bisección

Publicado por JOSE joseingeyt@gmail.com (1 intervención) el 01/12/2015 16:27:06
jose muchas gracias por tu aporte disculpa me puedes poner una explicaciond de como funciona el programa porfavor, es para un trabajo porfavor te lo agrdeceria mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar