求解一個超越方程,如何通過數學方法求解?
數值分析。。。永遠的痛啊
你是要算?答案是,其中 W 為 Lambert W 函數。
順便,這個不是實數。
(數學的方式我不會,碼農的方式我會,哈哈哈哈
附和一下 @Belleve的答案,下面開始小白講堂。
首先,可以把看做:,,然後求令的值。這麼說樓主你懂的吧?
然後可以看出,和都是遞增函數。這麼說樓主你懂的吧?
我們假設其在實數集上有解,是不是只能在時才有可能有解(遞增,注意遞增性質)?這麼說樓主你懂的吧?
好,打開Matlab,敲出以下代碼:%% 其實我在逗你玩
clear;
clc;
close all;
warning off;
x = 0:0.01:1;
y1 = x;
y2 = 2.^x;
figure;
plot(x, y1, "r", "Linewidth", 2);
hold on;
plot(x, y2, "b", "Linewidth", 2);
set(gcf, "color", "w");
set(gca,"FontSize", 14);
set(gca,"FontName", "Verdana");
legend("y_1 = X", "y_2 = 2^X", "Location", "NorthWest");
xlabel("X");
ylabel("y_1和y_2");
title("其實我在逗你玩");
得到如下結果:
看到了吧?在實數區間上沒有交叉點。所以,該超越方程沒有實數解。這麼說樓主你懂的吧?下面繼續求解,再次打開Matlab,在Command Windows里直接敲出下面這行代碼(Mathematics/Maple也行):
solve("X = 2^X", "X")
得到答案:
ans =
-lambertw(0, -log(2))/log(2)
注意這裡有負號,和 @Belleve的答案有區別!!!
lambertw啥意思呢?help lambertw(在Command Windows直接敲)一下唄:
help lambertw
Matlab官方的解釋是這樣的:
LAMBERTW Lambert"s W function.
W = LAMBERTW(X) is the solution to w*exp(w) = x.
W = LAMBERTW(K,X) is the K-th branch of this multi-valued function.
Reference: Robert M. Corless, G. H. Gonnet, D. E. G. Hare,
D. J. Jeffrey, and D. E. Knuth, "On the Lambert W Function",
Advances in Computational Mathematics, volume 5, 1996, pp. 329-359.Overloaded methods:
sym/lambertw
加粗處論文分享:art%3A10.1007%2FBF02124750.pdf_免費高速下載。
看不懂?好吧,再丟幾個link出來:- 百度百科是這麼解釋的:朗伯W函數_百度百科。
- 維基百科中文版是這麼解釋的:朗伯W函數。
- 維基百科英文版是這麼解釋的:Lambert W function。
你自己點進去看噻。這麼說樓主你懂的吧?
好,下課。
遇到像lambertw這種款式的函數,我都默認放棄治療的。這不是初中的題目嗎?畫個圖就知道肯定無解…
Reduce[2^x == x, x]
C[1] [Element] Integers x == -(ProductLog[C[1], -Log[2]]/Log[2])牛頓法求解!要不不考慮數學,二分法吧。
當然,問題中這個方程無解。。。
推薦閱讀:
※麵包為什麼呈現出六邊形?
※從n層樓跳下,往水池跳是否能保證不受傷害?
※有哪些類似1+2+3+.......+∞=-1/12之類的題呢?
※十三間密室排成一排,小偷躲在其中一間,每過一天必轉移到相鄰的密室,轉移方向隨機。每天只能搜一間,問如何保證找到密室里的小偷?
※為什麼大於零小於壹的純循環小數的循環節是其最簡分數分子的倍數?