Matlab - Llamar a dos archivos .m desde otro archivo .m

 
Vista:
sin imagen de perfil

Llamar a dos archivos .m desde otro archivo .m

Publicado por jaisa (5 intervenciones) el 06/12/2016 14:59:15
Hola:

estoy haciendo un programa de matlab en el que he creado 3 archivos .m: uno en el que he implementado el método de Newton para encontrar raíces de ecuaciones, function it=nr(x0,Tol,nmax) , otro en el que implemento el de la secante con el mismo fin, function it=secant(x0,x1,Tol,nmax) y otro en el que implemento un método de punto fijo para lo mismo, function it=pfijo(x0,Tol,nmax). x0 y x1 son los puntos con los que uno parte para poder encontrar las raíces con el método, Tol es la tolerancia y nmax el numero máximo de iteraciones que puede realizar cada método.

Además tengo que construir un programa que será problema.m y que devolverá al programa principal la expresión de la ecuación no lineal a resolver numéricamente en lenguaje simbólico (tengo 3 ecuaciones para resolver), una vez haya sido elegida por el usuario.

Y también tengo que implementar un programa llamado principal.m cuyos datos de entrada sean el número máximo de iteraciones a realizar nmax y la tolerancia Tol. El programa le tiene que pedir al usuario que elija la ecuación que quiere resolver y el método numérico que quiere emplear.

Sin embargo, no sé como hacer problema.m y principal.m para que todo esté conectado, ¿cómo podría hacerlo?

Saludos.
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 Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Llamar a dos archivos .m desde otro archivo .m

Publicado por Royeth (1818 intervenciones) el 06/12/2016 17:59:50
utiliza funciones , aquí te adjunto un ejemplo sencillo :


1
2
3
4
5
6
7
8
function c=principal
a=geta(2);
b=getb(3);
c=a+b;
function a=geta(n)
a=2.^n;
function b=getb(n)
b=3.^n;


guarda el script este como principal


y al correrlo veras como a se obtiene de una función diferente y b también

espoero te sea de ayuda, ahí se conecta el principal con dos funciones

https://www.facebook.com/royethmatlab/
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Llamar a dos archivos .m desde otro archivo .m

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 08/12/2016 16:38:00
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
function [ec,it]=principal(nmax, Tol,metodo, ecuacion)
ec=problema(ecuacion);
it=Metodo(metodo);
end
 
 
 
function it=Metodo(metodo)
global Tol  nmax
    if strcmp(metodo,'newton')
       x0=rand;
        it=nr(x0,Tol,nmax) ;
 
    elseif strcmp(metodo,'secante')
        x0=rand;  x1=rand;
        it=secant(x0,x1,Tol,nmax) ;
 
    elseif strcmp(metodo,'puntofijo')
        x0=rand;
         it=pfijo(x0,Tol,nmax);
    end
end
 
 
 
function ec=problema(ecuacion)
        if ecuacion==1
            ec=cos(x)-x;
        elseif ecuacion==2
            ec=exp(x)-2;
        elseif ecuacion==3
            ec=sinx-cos(x);
        end
end
 
 
function it=nr(x0,Tol,nmax)
global ec
ec
 
end
 
function it=secant(x0,x1,Tol,nmax)
global ec
ec
 
end
 
function  it=pfijo(x0,Tol,nmax)
global ec
ec
 
 end


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programación matlab
[email protected]


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