set first derivative equal to zero with some constant
    13 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
I have equation from derive from snellius law and i'd like to set its derivative equal to zero since fermat principle said so.

here the matlab that I used to get fist derivative, but when I solve it in order to get x value when dT/dt=0  it give me strange result. Is it because I put a lot of variable in syms? actually a, b, c, v1 and v2 is a constant. should I put it a number rather than a alphabet symbol to get proper result?
syms x a b c v1 v2
T=sqrt(x.^2+a^2)./v1+sqrt((b-x).^2+c^2)./v2;
dTdx=diff(T)
fermat=solve(dTdx==0,x)
2 comentarios
  Dyuman Joshi
      
      
 el 14 de Mayo de 2023
				What are you solving with dTdx == 0 is a polynomial in x, and thus you are getting the roots of the polynomial as the output, in terms of the variables. 
"actually a, b, c, v1 and v2 is a constant. should I put it a number rather than a alphabet symbol to get proper result?"
Yes. If you want Numerical solution, you will have to define the variables with numerical values. 
Use double() if you want to convert the symbolic result into numerical result
Respuestas (1)
  Matt J
      
      
 el 14 de Mayo de 2023
        
      Editada: Matt J
      
      
 el 14 de Mayo de 2023
  
      should I put it a number rather than a alphabet symbol to get proper result?
[a, b, c, v1, v2]=deal(1);
fun=@(x) x./sqrt(x.^2+a.^2)./v1 -(b-x)./sqrt((b-x).^2+c.^2)./v2;
x = fzero(fun,1)
fplot(fun,[-5 ,5]); yline(0); xline(x)
0 comentarios
Ver también
Categorías
				Más información sobre Calculus en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





