Matlab - Por favor, ayuda!

 
Vista:

Por favor, ayuda!

Publicado por Esteban (2 intervenciones) el 29/03/2005 23:20:04
Buenas tardes, por favor me podrían decir dentro de estos procedimientos efectuados en MatLab que no funciona, si me colaboran con la solución se los agradeceré mucho.

Código Matlab.

Se debe presentar un programa en Matlab, el cual permita encontrar la raíz de una función f(x) cualquiera. El programa debe como mínimo tener las siguientes características:

Recibir de parte del usuario los parámetros requeridos para el método especifico, los cuales deben estar descritos en el pseudo código entregado anteriormente.

Verificar que la función suministrada pueda ser resuelta mediante el método programado, haciendo uso de las condiciones requeridas por el método.

Entregar como resultado una tabla con los valores obtenidos en cada iteración, la solución final del problema, el numero de iteraciones requeridas, el error obtenido y la constante asintótica del error.

Emplear un criterio pesimista de parada y dos optimistas, cuyos valores deben ser preguntados al usuario.

Se debe graficar el comportamiento de la estimación de la raíz y la propagación del error para cada iteración , así como el valor de la función en cada una de las raíces estimadas.


%BISECCION (matlab)
clear
clc
disp ('METODO DE BISECCION')
f=input ('entre comillas sencillas Ingrese la función en términos de x: ');
Xa=input ('limite inferior del intervalo: ‘);
Xb=input (‘limite superior del intervalo: ' );
x=Xa;
Ya=eval (f);
If Ya==0
disp ('el limite inferior es raíz')
End
x=Xb;
Yb=eval (f);
If Yb=%3
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
Imágen de perfil de Alejandro

Implementación del método de bisección para encontrar raíces de funciones

Publicado por Alejandro (145 intervenciones) el 06/10/2023 22:05:25
Esteban, parece que el código que proporcionaste está incompleto y contiene algunos errores de sintaxis. Voy a corregir y completar el código para el método de bisección en Matlab:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
% METODO DE BISECCION
 
clear
clc
 
disp('METODO DE BISECCION');
 
% Ingrese la función en términos de x
f = input('Ingrese la función en términos de x: ', 's');
 
% Límite inferior y superior del intervalo
Xa = input('Ingrese el límite inferior del intervalo: ');
Xb = input('Ingrese el límite superior del intervalo: ');
 
% Criterios de parada
tolerancia = input('Ingrese la tolerancia para el criterio de parada: ');
maxIter = input('Ingrese el número máximo de iteraciones: ');
 
% Inicialización
iter = 0;
error = inf;
 
disp('Iteración |    Xa    |    Xb    |    Xr    |   f(Xr)   |   Error   |');
disp('--------------------------------------------------------------------');
 
while error > tolerancia && iter < maxIter
    Xr = (Xa + Xb) / 2;
    fr = eval(f);
 
    fprintf('%4d     | %8.6f | %8.6f | %8.6f | %8.6f | %8.6f |\n', iter, Xa, Xb, Xr, fr, error);
 
    if fr == 0
        disp('¡Se encontró la raíz exacta!');
        break;
    elseif fr * eval(f, 'Xa', Xr) < 0
        Xb = Xr;
    else
        Xa = Xr;
    end
 
    iter = iter + 1;
    error = abs((Xb - Xa) / 2);
end
 
disp('--------------------------------------------------------------------');
 
% Mostrar resultados finales
if error <= tolerancia
    disp('Se alcanzó la tolerancia especificada.');
else
    disp('Se alcanzó el número máximo de iteraciones.');
end
 
disp(['Raíz estimada: ' num2str(Xr)]);
disp(['Número de iteraciones: ' num2str(iter)]);
disp(['Error final: ' num2str(error)]);

Este código realiza el método de bisección para encontrar la raíz de una función dada y muestra una tabla con los valores obtenidos en cada iteración, así como la solución final, el número de iteraciones, el error y la constante asintótica del error. Asegúrate de completar la entrada de los criterios de parada y de verificar la función proporcionada.
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