Matlab - funcion ecuacion recta

   
Vista:

funcion ecuacion recta

Publicado por cesar (5 intervenciones) el 10/04/2012 13:09:15
hola a todos, he buscado si habia alguna funcion propia de matlab o creada para hallar la ecuacion de la recta y=m*x+n pero no he encontrado nada, por lo que estoy intentando hacerla yo.

paso las coordenadas iniciales (x0,y0) y el angulo respecto al eje x(alfa)
hallo la pendiente m=tan(alfa) y la sustituyo en la ecuacion
con los puntos iniciales saco n y ya tengo la ecuacion de la recta.

El problema es que cuando intento sustituir x0 e y0 me da valores de n erroneos porque no lo estoy haciendo bien:

1
2
3
f='y=m*x+n'
subs(f,'m',tan(alfa))
a partir de aqui estoy perdido, he probado con subs para x0 e y0 y con solve pero no consigo hacerlo bien.


espero que me podais ayudar, 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

funcion ecuacion recta

Publicado por gerardo gerardo_lonely@hotmail.com (95 intervenciones) el 10/04/2012 17:35:34
Hola Cesar!

Bueno seguramente porque la funcion tan te da la tangente en radianes. Debes usar tand.

1
2
3
4
5
6
7
syms x y
xo=input('ingrese coordenada xo = ');
yo=input('ingrese coordenada yo = ');
alpha=input('ingrese angulo alpha: ');
m=tand(alpha); % TANGENTE EN SEXAGESIMALES
y=m*(x-xo)+yo;
fprintf('la ecuacion de la recta es: y = %s\n',char(y));


Suerte! =)
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

funcion ecuacion recta

Publicado por cesar (5 intervenciones) el 10/04/2012 21:49:52
muchas gracias por la respuesta. el problema es que definia al comienzo la ecuacion de manera simbolica y luego iba sustituyendo los valores. mucho mas facil asi, gracias.

debo ser un negado para esto porque ahora nombro y1 e y2 a dos rectas que he creado de esa manera, supongamos y1=2 e y2=x+1; para igualar las ecuaciones y hallar los puntos de corte pero me da varios errores.
he usado solve(y1==y2);
solve(y1==y2,'x')
solve(y1,y2) y muchas variantes pero solo consigo una solucion de comparacion con y1==y2 que no es lo que busco.
Si he encontrado solucion pero despejando todos los terminos a un lado e igualando a cero pero me gustaria saer si hay alguna forma de hacerlo tal cual porque estoy haciendo un programa q sera todo el rato de puntos de corte entre rectas.
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

funcion ecuacion recta

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 11/04/2012 03:57:50
Hola Cesar.

1
2
3
4
5
6
7
8
9
10
clear all
syms y1 x
y1=2;
y2=x+1;
figure(gcf)
plot([-5 5],[ 2 2],[-5 5],[-5 5]+1)
hold on
X=solve(y1==y2);
plot(X,2,'*r')
hold off


1
2
EJECUCION
>> interseccion_recta



Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion 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

funcion ecuacion recta

Publicado por Gerardo gerardo_lonely@hotmail.com (95 intervenciones) el 11/04/2012 05:13:06
Hola Cesar!

Al parecer quieres las coordenadas del punto de interseccion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
clear all; clc
syms x
y1=x+1;
y2=2;
if isnumeric(y1)==1
    y1=num2str(y1);
end
if isnumeric(y2)==1
    y2=num2str(y2);
end
xp=str2double(char(solve(y1==y2)));
ec=inline(y2);
yp=ec(xp);
fplot(char(y1),[xp-5, xp+5],'b')
hold on
fplot(char(y2),[xp-5, xp+5],'r')
grid
plot(xp,yp,'*g'),text(xp+0.2,yp+0.2,['(',num2str(xp),',',num2str(yp),')'])
legend(['y = ',char(y1)],['y = ',char(y2)])
hold off


Suerte! =)
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

funcion ecuacion recta

Publicado por wil (1 intervención) el 23/12/2012 00:00:35
hola
por suerte consegui estepagina, pero no corre sale errores o no se correrla que es lo que mas creo, me puedes ayudar?
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