Find the value x

4 Ansichten (letzte 30 Tage)
Pichaya Thochampa
Pichaya Thochampa am 17 Aug. 2020
Bearbeitet: Matt J am 19 Aug. 2020
y = x ^ e - e ^ x is [0 5] when x^e=e^x

Akzeptierte Antwort

Matt J
Matt J am 17 Aug. 2020
Bearbeitet: Matt J am 17 Aug. 2020
>> [x,fval]=fminbnd(@(x) abs(exp(x)-x^exp(1)),0,5)
x =
2.7183
fval =
4.4743e-11
  4 Kommentare
Pichaya Thochampa
Pichaya Thochampa am 19 Aug. 2020
Bearbeitet: Bruno Luong am 19 Aug. 2020
Excuse me, ask me why. When issuing a command of a program that is
>> x = fminbnd (@ (x) (x ^ (exp (1)) - (exp (1) ^ x)), 0,5)
to get the answer 1.0000, but when using
>> x = fminbnd (@ (x) ((exp (1) ^ x) -x ^ exp (1)), 0,5)
is only 2.7183.
Matt J
Matt J am 19 Aug. 2020
Bearbeitet: Matt J am 19 Aug. 2020
Because the first version has a local minimum at x=1. (Note: fminbnd may find a local, rather than a global minimum).
fplot(@ (x) (x ^ (exp (1)) - (exp (1) ^ x)), [0,5]);
whereas the second version has a minimum at x=exp(1).
fplot(@ (x) ((exp (1) ^ x) -x ^ exp (1)), [0,5])

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

hosein Javan
hosein Javan am 17 Aug. 2020
Bearbeitet: hosein Javan am 17 Aug. 2020
you can rewrite the equation in the form of "x^(1/x) = exp(1/exp(1))". this means that if "f(z)=z^(1/z)" then we have "f(x) = f(exp(1))". giving an inverse function, then it is "x=exp(1)".
syms x
f(x) = x^(1/x) - exp(1/exp(1));
x_ex = solve(f(x),x) % exact value
x_app = vpa(x_ex) % approximation
err_f = subs(f(x),x,x_app) % error
x_ex =
lambertw(0, 51*log(2) - log(3253102820258857))/(51*log(2) - log(3253102820258857))
x_app =
2.7182817878772095927811977987387
err_x =
2.9387358770557187699218413430556e-39
x = 0:0.001:5;
y = x.^exp(1) - exp(x);
plot(x,y)
  2 Kommentare
Pichaya Thochampa
Pichaya Thochampa am 17 Aug. 2020
Thank you so much:)
hosein Javan
hosein Javan am 17 Aug. 2020
don't mention it.

Melden Sie sich an, um zu kommentieren.


KSSV
KSSV am 17 Aug. 2020
The value of x would be e i.e exp(1). Check the below:
x = linspace(0,5,10^6) ; % as you said x lies in [0 5]
f = x.^exp(1)-exp(x) ;
[val,idx] = min(abs(f)) ; % pick the value for which f is minimum i.e f = 0
x0 = x(idx) ; % the value of x
f = x0^exp(1)-exp(x0) % check
  1 Kommentar
Pichaya Thochampa
Pichaya Thochampa am 17 Aug. 2020
Thank you so much:)

Melden Sie sich an, um zu kommentieren.


Matt J
Matt J am 17 Aug. 2020

Kategorien

Mehr zu Optimization finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by