Equation solution for large iteration number

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

 採用された回答

Roger Stafford
Roger Stafford 2017 年 11 月 11 日

0 投票

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 件のコメント

Muhammed Ekin
Muhammed Ekin 2017 年 11 月 11 日
Thank you for your response. But it is not exp(1). I am looking for response of (x+1)*exp(x)-c(i,1).
Roger Stafford
Roger Stafford 2017 年 11 月 11 日
I have given you the solution in terms of the 'lambertw' function of your equation. Use 'solve' on your equation and see.
Muhammed Ekin
Muhammed Ekin 2017 年 11 月 11 日
I have already used 'solve' as you see in my question.
Roger Stafford
Roger Stafford 2017 年 11 月 11 日
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.

サインインしてコメントする。

その他の回答 (1 件)

Muhammed Ekin
Muhammed Ekin 2017 年 11 月 12 日

0 投票

Thank you although it is slow and give same results to mine, that is another way to solve it.

質問済み:

2017 年 11 月 11 日

回答済み:

2017 年 11 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by