【问题标题】:Integral with variable limits积分可变极限
【发布时间】:2012-11-27 02:39:53
【问题描述】:

您好,我正在努力使用 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 integration nonlinear-functions


    【解决方案1】:

    您可以尝试一种射击方法 - 猜测 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 仍然会留下令人讨厌的结果。可能有一个“技巧”可以更好地在数学溢出时提出。

    【讨论】:

    • 谢谢,必须在matlab中完成,我不确定是否可以使用拍摄,因为它不是真正的IVP / BVP,为什么最后使用norm?
    • 我使用 norm 以便数字的虚部包含在 fsolve 的错误中:)
    • 顺便说一句 - 这个问题是怎么出现的?
    • 计算压缩圆柱体上的表面张力,H 是高度,R 是半径,我需要求解方程来计算表面张力,这就是为什么我不确定是否它们应该是虚部
    • 我不认为这是虚构的...... - 我只是用我的随机输入值来获取它们。当然要确保这些值具有物理意义:)
    猜你喜欢
    • 2015-07-10
    • 1970-01-01
    • 2019-08-04
    • 2015-03-30
    • 2012-12-03
    • 1970-01-01
    • 2020-08-23
    • 2015-12-16
    • 1970-01-01
    相关资源
    最近更新 更多