积分与可变限制

时间:2012-12-09 14:12:10

标签: matlab variables integration nonlinear-functions

嗨我正在努力用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并且想法是求解积分然后求解a的非线性方程,我知道为非线性方程起诉fzero / fsolve但是我正在努力解决积分

1 个答案:

答案 0 :(得分:0)

enter image description here

你可以尝试一种射击方法 - 猜测a的值并从那里数值求解,直到你找到一个解决最后一个方程的值。继承人应该工作的东西(虽然我随机猜测数值并没有让它收敛)

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

但是......的分析表达式......我认为它的笔和纸:)尝试手工制作无限积分,然后应用限制?虽然,从被子中移除a仍然会留下令人讨厌的结果。这可能是一个“技巧”,可以更好地解决数学溢出问题。

enter image description here