用Mathematica的 DSolve 解微分方程时返回True的原因和解决办法

我遇到这个问题后在网上找到了答案,网上原文如下:

Question: DSolve returns true

Using Mathematica 7, I got a solution

The only time I was able to reproduce the “DSolve[True….” message was when I had the sequence of commands as follows,

What’s happening is that y'[x] is known to be x- y[x], and the DSolve is doing a compare of y-y[x] == y-y[x], returning True. Then it can’t solve True for y[x] in x, resulting in the question being returned.

Would you try exiting the kernel, restart fresh, and re-typing (* commands 1*) only.

 

(内容出自 Wolfram Community http://community.wolfram.com/groups/-/m/t/332674

意思就是,在DSolve解方程时,已事先给出了 y‘[x] 解析表达式,后来又来 y'[x] == x – y[x] 后,相当于在这里比较真假,因此返回 True。

解决办法:删去事先给出的f[x]表达式,清理内存,或者关掉从头重新计算,建议采用后一种方法,比较快速稳妥。

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注