问题描述
我必须在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从事更多的工作?
在信任任何内容之前,请仔细检查所有内容。