2012-12-09 32 views
3

嗨im和努力解決一個積分與變量作爲極限使用matlab,我最大的兩個問題是,matlab無法明確地找到積分和很多數值方法除了變量積分可變限制

我需要解決

0=H/2R - integral (z(x) between b and 1) 

z(x)= (((x/((a*x*x)+1-a))^2)-1)^-0.5 
b= (sin(t)+sqrt(t^2 + 4a(a-1)))/2a 

我知道H,R和t和想法是解決積分然後求解一個非線性方程,我知道fzero/fsolve到SUSE的非線性方程,但我拼命解決積分問題

回答

0

enter image description here

你可以嘗試一種拍攝方法 - 猜測某個值並從中進行數值求解,直到找到解決最後一個等式的值。繼承人的東西,應該工作(雖然我在數值隨機猜測,並沒有得到它收斂)

function test 

    a_guess = .1 
    fzero(@(a) solveWithA(a), a_guess) 


    function res = solveWithA(a) 

    t = .9; 

    H = 1.5; 
    R = 1.1; 


    z = @(x) (((x/((a*x*x)+1-a))^2)-1)^-0.5; 
    b = (sin(t)+sqrt(t^2 + 4*a*(a-1)))/(2*a); 

    lower_limit = b; 

    integrand = z; 


    [T, Y] = ode45(@(t, x) integrand(x),[lower_limit 1],0); 

    res = norm((H/2/R - Y(end))) 

    end 

end 

但對於一個的解析表達式...我認爲它的筆和紙:)嘗試做的手動不確定積分,然後應用限制?雖然,從被積件中刪除仍然留下了一個不好的結果。數學溢出可能會帶來更好的「技巧」。

enter image description here

+0

感謝,它已經在MATLAB做,我不是肯定的,如果拍攝可作爲其不是一個真正的IVP/BVP,你爲什麼在最後使用規範? – user1889524

+0

我使用了規範,以便數字的虛部包含在fsolve的錯誤中:) – ccook

+0

順便說一句 - 這個問題是怎麼產生的? – ccook