Using Fminsearch to solve equation

Hello,
I need your help to use fminsearch to solve this equation, I did not know how to solve it, because I'm a beginner in Matlab.
Best regard,

 Respuesta aceptada

Walter Roberson
Walter Roberson el 15 de Abr. de 2019
Generally speaking,
f(x) = constant
can be solved by minimizing
(f(x) - constant)^2
This approach can be used with multiple variables.
The difficulty is in finding a starting point for the search. Different minimizers have different algorithms but in practice all of the local minimizer can get stuck in local minima. (Theory does say that Simulated Annealing will find the global minimum if given enough time but the time required might be many times the expected lifetime of the Universe)

3 comentarios

Walter Roberson
Walter Roberson el 18 de Abr. de 2019
Also, I have never quite trusted that theory that Simulated Annealing will eventually find the answer: it smells to me too much like the theory that a random walk will definitely return to the origin if let run infinitely long, which has been disproven for more than 2 dimensions. https://mathoverflow.net/questions/45098/when-do-3d-random-walks-return-to-their-origin
MAROUANE ENNAGADI
MAROUANE ENNAGADI el 3 de Mayo de 2019
Thank you so much for your reponse, I tried to solve it and I find some errors:
% Main Principal :
% Données:
sigma=0.1;
e=1.6e-19;
N=10.^26;
E_LUMO=0;
K_B=8.625e-5; % Constante de Boltzman
T=300; % Témperature Ambiante
Bc=2.735;
Alpha=0.215*N.^(-1./3); % the localization length
Ef=E_LUMO-0.5; % Energie de Fermi
% Valeur de départ Et0 :
E_t_0=0;
% Bornes d'integration en Energie:
E1=-10*sigma;
N_0=1000;
E=linspace(E1,Et,N_0);
% Calcul de Et:
Et=fminsearch('F_min',E_t_0,[],Bc,K_B,T,Alpha);
My Fonctions are :
function [Gauss]=densite_Gaussienne(N,sigma,E,E_LUMO)
Gauss=N./(sigma*sqrt(2*pi)).*exp(-(E-E_LUMO).^2./(2*sigma^2));
end
function [S_F_D]=statistque_Fermi_Dirac_1(E,Ef,K_B,T)
S_F_D=1-(1./(1+exp((E-Ef)./(K_B*T))));
end
function [Multi_G_F_D]=multiplication_G_D_1(Gauss,S_F_D)
Multi_G_F_D=Gauss.*S_F_D;
end
% Calcul de nt:
function [nt]=n_t_1(E,Multi_G_F_D)
nt=trapz(E,Multi_G_F_D);
end
function F=F_min(Et,Bc,K_B,T,Alpha,E1,N_0)
E=linspace(E1,Et,N_0);
nt=trapz(E,Multi_G_F_D);
F=abs((2/3)*(4.*pi/3*Bc).^-1/3.*(K_B*T./Alpha).*(nt).^-4/3.*(1-(1./(1+exp((Et-Ef)./(K_B*T)))).*(N./(sigma*sqrt(2*pi)).*exp(-(Et-E_LUMO).^2./(2*sigma^2))))-1);
end
Best regard,

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Econometrics Toolbox en Centro de ayuda y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by