Matlab - input ecuacion

 
Vista:

input ecuacion

Publicado por AlAN (1 intervención) el 24/07/2017 21:00:01
estuve trabajando con ell método de Euler y soy nuevo en esto
no puedo ingresar 2 ecuaciones porque Matlab no me lo reconoce

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
function [fx,fy]=grafico(delta,x_0,y_0,ecuacion1,ecuacion2)
close all
clc
f = @(ecuacion1,ecuacion2);
%ecuacion1=input('\nIngrese la ecuacion diferencial de la forma: dy/dx=f(x,y)\n','s');
 
%ecuacion2=input('\nIngrese la ecuacion diferencial de la forma: dy/dx=f(x,y)\n','s');
 
c = 0;
fx =[];
fy =[];
fm = [];
fn = [];
fx(end+1)= x_0;
fy(end+1)= y_0;
x= 0;
y= 0;
    while c < 100;
        c = c+1;
        x = fx(c);
        y = fy(c);
        fm(end+1) = ecuacion1;
        fn(end+1) = ecuacion2;
        m = fm(c);
        n = fn(c);
        fx(end+1)= x+delta*(m);
        fy(end+1)= y+delta*(n);
    end
    fx
    fy
    plot(fx,fy,'o-k');
    grid on;
    axis square;
    axis tight;
end
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 Lindsey
Val: 427
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

input ecuacion

Publicado por Lindsey (112 intervenciones) el 25/07/2017 04:10:40
Hola, me parece que primero deberías comprender bien cómo trabajan las funciones anónimas que es lo que me parece estás intentando implementar con esta línea:

1
f = @(ecuacion1,ecuacion2);

En este link explican este tema pero básicamente para crear una función escribes funcion=@(variables) ecuación en función de las variables, por ejemplo:
1
suma=@(x,y) x+y
Y para implementarla, escribes los siguiente:
1
2
3
4
5
>> suma(2,1)
 
ans =
 
     3

Ahora para el ingreso de ecuacion1 y ecuacion2 tendrías la opción de crear las funciónes anónimas para cada variable previamente y luego ingresarlas en la función:
1
2
3
ecuacion1=@(x,y) x+y;
ecuacion2=@(x,y) x*y;
[fx,fy]=grafico(delta,x_0,y_0,ecuacion1,ecuacion2)
O puedes ingresarlas directamente en la función como funciones anónimas:
1
[fx,fy]=grafico(delta,x_0,y_0,@(x,y) x+y,@(x,y) x*y)
*Lo anterior sería para hacerlo en el command window, para cuando quieras evaluar tu función "grafico"*

Ya dentro del script de la función sí estarías trabajando como:
1
2
resultado1=ecuacion1(valor_de_x,valor_de_y);
resultado2=ecuacion2(valor_de_x,valor_de_y);

Espero que te sirva.
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