Wolfram mathematica 用DSolveValue解积分方程

Wolfram mathematica 用DSolveValue解积分方程,wolfram-mathematica,differential-equations,integral,numerical-integration,Wolfram Mathematica,Differential Equations,Integral,Numerical Integration,我必须在Mathematica中数值求解以下积分方程: x[s]==2.5-(1.35九分之一[x[t],{t,0.7,1}])/( 0.1-0.1Nintegrate[x[t],{t,0.7,1}]),x[0.9]==1 为了做到这一点,我以以下方式使用了NSolveValue: DSolveValue[{x[s]==2.5-(1.35九分之一[x[t],{t,0.7,1}])/(0.1-0.1九分之一[x[t],{t,0.7,1}]),x[0.9]==1},x[s],s] 但是Mathema

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

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

DSolveValue[{x[s]==2.5-(1.35九分之一[x[t],{t,0.7,1}])/(0.1-0.1九分之一[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]
的不定积分

假设从t=.7到1的
x[t]
的定积分是
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]))}}
c1 -> -67/5 + 243/(20*(1 + y[7/10] - y[1]))
y[s] == -67/5 + 16*s - (27*(-9 + 10*s))/(20*(1 + y[7/10] - y[1]))
现在应用你的初始条件

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

{{y[s] -> C[1] + s*(16 - 27/(2 + 2*y[7/10] - 2*y[1]))}}
c1 -> -67/5 + 243/(20*(1 + y[7/10] - y[1]))
y[s] == -67/5 + 16*s - (27*(-9 + 10*s))/(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] -> C[1] + s*(16 - 27/(2 + 2*y[7/10] - 2*y[1]))}}
c1 -> -67/5 + 243/(20*(1 + y[7/10] - 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] == (-77 - 3*Sqrt[766])/10 + ((29 + Sqrt[766])*s)/3
y[s] == (-231 + 9*Sqrt[766] - 10*(-29 + Sqrt[766])*s)/30

返回

y[s] == (-77 - 3*Sqrt[766])/10 + ((29 + Sqrt[766])*s)/3
y[s] == (-231 + 9*Sqrt[766] - 10*(-29 + Sqrt[766])*s)/30
这有用吗?你能接受结果并尝试检查这是否是一个有效的解决方案吗?或者确定任何无效的步骤?或者简化这个过程,让Mathematica做更多的工作

请仔细检查所有这些,然后再信任其中任何一个