【问题标题】:Solving integral equations with DSolveValue用 DSolveValue 求解积分方程
【发布时间】:2021-01-01 13:46:23
【问题描述】:

我必须在 Mathematica 中以数值方式求解以下积分方程: x[s] == 2.5 - (1.35 NIntegrate[x[t], {t, 0.7, 1}])/( 0.1 - 0.1 NIntegrate[x[t], {t, 0.7, 1}]), x[0.9] == 1

为了做到这一点,我通过以下方式使用 NSolveValue:

DSolveValue[{x[s] == 2.5 - (1.35 NIntegrate[x[t], {t, 0.7, 1}])/(0.1 - 0.1 NIntegrate[x[t], {t, 0.7, 1 }]), x[0.9] == 1}, x[s], s]

但 Mathematica 会产生以下错误: 对于边界为 {{0.9,1}} 的区域中的所有采样点,被积函数 x[t] 已评估为非数值。

NIntegrate::inumr 的进一步输出将在此计算期间被抑制。

对于一般解的某些分支,给定的边界条件导致空解。

我做错了什么?

感谢您的帮助!

【问题讨论】:

    标签: wolfram-mathematica differential-equations integral numerical-integration


    【解决方案1】:

    假设 x[t] 足够好,可以让它工作。

    假设y[t]x[t] 的不定积分。

    假设x[t]从t=.7到1的定积分是y[1]-y[.7]

    我们必须稍后检查这一切是否属实。

    所以你的问题就变成了

    DSolve[y'[s]==25/10-(135/100 (y[1]-y[7/10]))/(1/10-1/10 (y[1]-y[7/10]))},y[s],s]
    

    返回

    {{y[s] -> C[1] + s*(16 - 27/(2 + 2*y[7/10] - 2*y[1]))}}
    

    现在应用你的初始条件

    FullSimplify[Solve[1==c1+9/10(16-27/(2+2y[7/10]-2y[1])),c1]]
    

    返回

    c1 -> -67/5 + 243/(20*(1 + y[7/10] - y[1]))
    

    并将其放入解决方案中

    y[s]==FullSimplify[-67/5+243/(20*(1+y[7/10]-y[1]))+s*(16-27/(2+2*y[7/10]-2*y[1]))]
    

    返回

    y[s] == -67/5 + 16*s - (27*(-9 + 10*s))/(20*(1 + y[7/10] - y[1]))
    

    我们不知道y[7/10]y[1] 的值。不过好在y[s] 还算简单。

    如果我尝试解决你的两个未知数

    Reduce[{y[7/10] == -67/5+16*7/10-(27*(-9+10*7/10))/(20*(1+y[7/10]-y[1])),
             y[1]   == -67/5+16*1-   (27*(-9+10*1   ))/(20*(1+y[7/10]-y[1]))},{y[7/10],y[1]}]
    

    返回

    (y[7/10] == (-14 - Sqrt[766])/15 || y[7/10] == (-14 + Sqrt[766])/15) &&
    y[1] == (3 - y[7/10])/2
    

    然后

    y[s] == FullSimplify[-67/5 + 16*s - (27*(-9 + 10*s))/
      (20*(1 + (-14 - Sqrt[766])/15 - (3 - (-14 - Sqrt[766])/15)/2))]
    

    返回

    y[s] == (-77 - 3*Sqrt[766])/10 + ((29 + Sqrt[766])*s)/3
    

    y[s] == FullSimplify[-67/5 + 16*s - (27*(-9 + 10*s))/
      (20*(1 + (-14 + Sqrt[766])/15 - (3 - (-14 + Sqrt[766])/15)/2))]
    

    返回

    y[s] == (-231 + 9*Sqrt[766] - 10*(-29 + Sqrt[766])*s)/30
    

    这有帮助吗?你能接受结果并尝试检查这是否是一个有效的解决方案吗?或者找出任何无效的步骤?或者简化这个过程并让 Mathematica 做更多的工作?

    在您信任其中任何一个之前,请仔细检查所有这些。

    【讨论】:

      猜你喜欢
      • 2014-04-21
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 2011-11-01
      • 2014-03-22
      • 1970-01-01
      相关资源
      最近更新 更多