我必須計算這個表達式的值 (e1 * cos(θ) - e2 * sin(θ))/(cos(θ))^ 2 - (sin(θ))^2)如何計算極限值
這裏e1和e2是一些複雜的表達式。
在θ接近PI/4的情況下,分母將接近零。但在這種情況下,e1和e2也將接近相同的值。所以在PI/4時,表達式的值將是E/sqrt(2)其中e1 = e2 = E我可以對θ= PI/4做特殊處理,但θ的值非常接近PI/4。計算這種表達式的一般策略是什麼
我必須計算這個表達式的值 (e1 * cos(θ) - e2 * sin(θ))/(cos(θ))^ 2 - (sin(θ))^2)如何計算極限值
這裏e1和e2是一些複雜的表達式。
在θ接近PI/4的情況下,分母將接近零。但在這種情況下,e1和e2也將接近相同的值。所以在PI/4時,表達式的值將是E/sqrt(2)其中e1 = e2 = E我可以對θ= PI/4做特殊處理,但θ的值非常接近PI/4。計算這種表達式的一般策略是什麼
這有點棘手。您需要更多地瞭解e1和e2的行爲。首先,我將使用變量a = theta-pi/4,以便我們對a-> 0感興趣,並寫出e1 = E + d1,e2 = E + d2。設F =你的表達倍的sqrt(2)
在這些方面,我們有
F = ((E+d1)*(cos(a) - sin(a)) - (E+d2)*(cos(a) + sin(a)))/- sin(2*a)
= (-(2*E+d1+d2)*sin(a) + (d1-d2)*cos(a))/(-2*sin(a)*cos(a))
= (E+(d1+d2)/2)/cos(a) - (d1-d2)/(2*sin(a))
假設D1-> 0和D2-> 0作爲A-> 0的第一項將趨於到E 然而,第二項可能會趨向於任何事情,或者爆炸 - 例如,如果d1 = d2 = sqrt(a)。
我們需要假設更多,例如d1-d2在a = 0時具有導數D. 在這種情況下,我們將有
F-> E - D/2 as a->0
爲了能夠計算F代表密切的值設置爲0,我們需要知道的還要多。 一種方法是有這樣的代碼:
if (fabs(a) < small) { F = E-D/2 + C*a; } else { F = // normal code }
因此,我們需要弄清楚什麼「小」和C應該是。部分取決於你需要什麼(相對)精度。最嚴格的要求是,在a = + - 很小時,近似值和正常代碼之間的差異應該太小而不能用double來表示(如果這就是你正在使用的)。但請注意,我們不能將「小」變得太小,否則存在一個危險,因爲正常代碼在+ =小時將評估爲0/0。一種方法是將F(或者僅僅是第二項)的分子和分母擴展爲冪級數(稱爲二階),將每一個除以a,然後對這些級數進行分割,使項保持二階;第一項在這給你C以上,第二項將允許你估計這個近似的誤差,因此估計'小'。
要做到這一點,您可能需要L'Hospitals規則(http://mathworld.wolfram.com/LHospitalsRule.html)。但它更多的是一個數學問題,而不是一個stackoverflow問題。 – 2014-11-06 04:53:11
這個問題似乎是無關緊要的,因爲它關乎數學而不是編程。 – 2014-11-06 06:20:54
Off topic?那麼爲什麼會退出一個「數學」關鍵字? – x64 2014-11-06 08:16:49