Matlab - soluciones ecuacion no lineal

   
Vista:

soluciones ecuacion no lineal

Publicado por cesar (5 intervenciones) el 21/08/2012 20:35:43
hola, estoy intentando realizar el corte de una recta con medio toro, simulando un rayo que rebota dentro de una curva en una fibra optica.
No consigo sacar las soluciones de la ecuacion de corte.
Este es el codigo, a ver si podeis decirme por que falla:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
x0=0;
y0=20;
z0=0;
h=20;
r=2;
R=5;
alfa=0;
beta=70;
 
u=[sind(alfa) cosd(alfa)*cosd(beta) sind(beta)];%vector de entrada del rayo
u=u/norm(u);
fsolve({x0+lambda*u(1)-(cos(asin((y0+lambda*u(2))/(R+r*cos(asin((z0+lambda*u(3))/r))))))*(R+r*cos(asin((z0+lambda*u(3))/r)))},{X},'complex')%aqui necesito sacar las soluciones de lambda
x=[x0 x0+lambda*u(1)];
y=[y0 y0+lambda*u(2)];
z=[z0 z0+lambda*u(3)];
%plot3(x,y,z)


gracias
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 JOSE JEREMIAS CABALLERO

soluciones ecuacion no lineal

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 22/08/2012 00:14:25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
clear all
x0=0;y0=20; z0=0;
h=20; r=2;R=5;
alfa=0;beta=70;
 
u=[sind(alfa) cosd(alfa)*cosd(beta) sind(beta)];%vector de entrada del rayo
u=u/norm(u);
syms t
a=x0+t*u(1)-(cos(asin((y0+t*u(2))/(R+r*cos(asin((z0+t*u(3))/r))))))*(R+r*cos(asin((z0+t*u(3))/r)));
t=solve(a,'t');
x=[x0 x0+t(1)*u(1)];
y=[y0 y0+t(1)*u(2)];
z=[z0 z0+t(1)*u(3)];
figure(1)
plot3(x,y,z)
grid
 
x=[x0 x0+t(2)*u(1)];
y=[y0 y0+t(2)*u(2)];
z=[z0 z0+t(2)*u(3)];
figure(2)
plot3(x,y,z)
grid



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

soluciones ecuacion no lineal

Publicado por cesar (5 intervenciones) el 23/08/2012 19:54:48
muchas gracias por contestar.
En la solucion que me has propuesto da dos numeros imaginarios. tratandose de un corte con un toro deberia haber 4 soluciones, de las cuales me quedaria con las reales que serian los puntos de corte.
tienes idea de donde puede estar el fallo?
un saludo
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

soluciones ecuacion no lineal

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 23/08/2012 20:04:40
Bueno no te podria decir.
Ya que mi aporte a tu codigo, fue netamente corregir tu código.
Derrepente el error debe de estar en el planteo de tu problema . Ya que uno primero plantea el problema matematica y luego lo pasa a un codigo.

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