求助:ParametricNDSolveValue 报错
mathematica吧
全部回复
仅看楼主
level 1
haozzº 楼主
pfun = ParametricNDSolveValue[{f[t] - t*f'[t] + a* D[(f[t])^3*
\!\(\*SuperscriptBox[\(f\),
TagBox[
RowBox[{"(", "3", ")"}],
Derivative],
MultilineFunction->None]\)[t], t] == 0, f[0] == 1, f'[0] == 0,
\!\(\*SuperscriptBox[\(f\),
TagBox[
RowBox[{"(", "3", ")"}],
Derivative],
MultilineFunction->None]\)[0] == 0, f''[100000] == 0},
f'[100000], {t, 0, 100000}, {a}]
y1 = pfun[1]
源程序如上,想利用ParametricNDSolveValue求边界值问题,为了找出f ‘ =1时的a值,原本边界条件为无穷这里设置为100000, 但运行后会发生错误,不知道是什么导致的?同样使用NDSOLVE也会有这样的错误。
错误如下:
2020年09月07日 09点09分 1
level 1
haozzº 楼主
2020年09月07日 09点09分 2
吧务
level 15
用于近似无穷远的右边界设得太大确实会造成问题。(粗略地说,越大越难算。)一般来说,在近似度足够的情况下应该尽量取小一些。
不过你的问题和这没关系。你这个只是因为t=0处有个可去间断点,加个SolveDelayed -> True就行了。(这选项是红的,不过别担心,它是有效的。)
2020年10月03日 04点10分 3
大佬我也遇到相似的问题了,我想问下这个SolveDelayed -> True具体加在哪个位置呢?
2020年10月05日 08点10分
@杰内西斯9 请善用自带帮助。
2020年11月06日 18点11分
1