how to find the root of function?

3 visualizzazioni (ultimi 30 giorni)
Ani Asoyan
Ani Asoyan il 20 Set 2021
Risposto: John D'Errico il 20 Set 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 Commenti
Rik
Rik il 20 Set 2021
Why don't you want to provide an initial estimate?
Ani Asoyan
Ani Asoyan il 20 Set 2021
I don't know the exact point

Accedi per commentare.

Risposta accettata

Alan Stevens
Alan Stevens il 20 Set 2021
Like this?
n_h0 = 0.1; %initial guess
n_h = fzero(@n_h_fun, n_h0);
disp(n_h)
0.0107
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

Più risposte (1)

John D'Errico
John D'Errico il 20 Set 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)
/ 1 \5/4 | - --------------- | 37 \ (10 n_h - 10) 3 / n_h - --------------------------- 50
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)
ans = 
0.010682191712647594755165531568215
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.

Categorie

Scopri di più su Chemistry in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by