how to find the root of function?
    10 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Ani Asoyan
 el 20 de Sept. de 2021
  
    
    
    
    
    Respondida: John D'Errico
      
      
 el 20 de Sept. de 2021
            Hi , I want to find the root of nonlinear function, without giving initial point. 
here is my .m file for parameters
alpha=0.74
g =0.5
gamma=1.2
sigma=1
phi=0.8
epsilon_1=1.5
w_r= (epsilon_1-1)/epsilon_1
then I made a function like this 
function a=n_h_fun(n_h)
a= n_h-(alpha*(w_r/ ((n_h-1)/(g*(1-gamma)))^sigma)^(1/phi))
end
and saved that file as n_h_fun.m
I want to find the value of n_h where a gets the value 0. I used fzero command but it shows errors.
2 comentarios
Respuesta aceptada
  Alan Stevens
      
      
 el 20 de Sept. de 2021
        Like this?
n_h0 = 0.1;  %initial guess
n_h = fzero(@n_h_fun, n_h0);
disp(n_h)
function a=n_h_fun(n_h)
    alpha=0.74;
    g =0.5;
    gamma = 1.2;
    sigma=1;
    phi=0.8;
    epsilon_1=1.5;
    w_r= (epsilon_1-1)/epsilon_1;
    a= n_h-(alpha*(w_r/ ((n_h-1)/(g*(1-gamma)))^sigma)^(1/phi));
end
Más respuestas (1)
  John D'Errico
      
      
 el 20 de Sept. de 2021
        Or do this:
alpha=0.74;
g =0.5;
gamma=1.2;
sigma=1;
phi=0.8;
epsilon_1=1.5;
w_r= (epsilon_1-1)/epsilon_1;
syms n_h
a = n_h-(alpha*(w_r/ ((n_h-1)/(g*(1-gamma)))^sigma)^(1/phi));
pretty(a)
So a is a simple nonlinear function of n_h.
% first, plot it. ALWAYS PLOT EVERYTHING
fplot(a,[-20,20])
grid on
vpasolve(a,n_h)
So vpasolve found the root near zero for n_h. There may be other solutions, but when n_h is negative, it looks like that curve goes to -inf almost linearly. We can probably show that to be true. And for positive values of n_h, above some point, it looks like a becomes complex. So the only real solution is probably the one found by vpasolve.
0 comentarios
Ver también
Categorías
				Más información sobre Optimization en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




