用DSolveValue求解积分方程

问题描述

我必须在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的进一步输出将在此计算期间被抑制。

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

我在做什么错了?

感谢您的帮助!

解决方法

假设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从事更多的工作?

在信任任何内容之前,请仔细检查所有内容。