Equation solution for large iteration number
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Muhammed Ekin
am 11 Nov. 2017
Beantwortet: Muhammed Ekin
am 12 Nov. 2017
Hi everybody,
I have an equation which I need to solve for a large iteration. It takes too many time, I have still waited for it since yesterday to solve.
So is there any solution to solve it faster.
Thank you
for i=1:1:18858
c(i,1)=(a(i,1)/b(i,1));
d(i,1)=(((x+1)*exp(x)))-c(i,1);
y(i,1)=solve(d(i,1),x);
end
0 Kommentare
Akzeptierte Antwort
Roger Stafford
am 11 Nov. 2017
Assuming you have the ‘lambertw’ function on your Matlab system:
d = a./b;
e1 = exp(1);
y = zeros(1,18858);
for ix = 1:1:18858
y(ix) = lambertw(e1*d(ix))-1;
end
4 Kommentare
Roger Stafford
am 11 Nov. 2017
If you look at “https://www.mathworks.com/help/symbolic/lambertw.html”, you will see that the lambertw function is the solution to the equation
w*exp(w) = k
namely, w = lambertw(k). In your equation, (x+1)*exp(x) = a/b, substitute w = x+1 and get
(x+1)*exp(x) = w*exp(w-1) = w*exp(w)/exp(1) = a/b
Therefore
w*exp(w) = exp(1)*a/b
Consequently
x = w-1 = lambertw(exp(1)*a/b)-1;
There! I've done a 'solve' for you.
Weitere Antworten (1)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!