具有可变限制的积分

问题描述 投票:0回答:1

嗨,我正在努力使用 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 求解非线性方程,但我很难求解积分

matlab variables numerical-integration nonlinear-functions
1个回答
0
投票

enter image description here

您可以尝试一种射击方法 - 猜测 a 的值并从那里进行数值求解,直到找到解决最后一个方程的 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的解析表达式...我认为它是笔和纸:)尝试手动计算不定积分,然后应用极限?尽管如此,从被积函数中删除 a 仍然会产生令人讨厌的结果。可能有一个“技巧”可以更好地解决数学溢出问题。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.