4

(3x^2+4xy)dx+(2x^2+2y)dy=0

我在纸上解这个方程是这样的:

解决方案

结果必须是:

f(x,y)=x^3+2x^y+y^2=c-c_1

我想在 Matlab 中找到 f(x,y) 函数。我尝试使用 dsolve 命令找到它。

dsolve ('(2*x^2+2*y)*dy=-(3x^2+4xy)', 'x')

但它给出了错误的结果。

还有其他解决方法吗???

4

2 回答 2

1

不是 MATLAB 错了,它解决了y(x) 或 x(y) 的ODE。精确微分方程是我们在研究生阶段深入探讨的内容(至少对于工程师而言)。如果您在将其作为编程问题之前更多地解释数学,这将很有帮助。如果不解释 f(x,y) 是如何参与的,就不清楚了。

提出另一种方式(有点概念上的延伸,但我认为它表明 F 是一个很好的潜在函数)......

div({F})= \frac{\partial F}{\partial x} + \frac{\partial F}{\partial y} = (3x^2+4xy) +(2x^2+2y) = 0

MATLAB 不会直接为您解决这个问题。但是,当以这种方式询问您的结果时,您的结果是可以立即验证的,因为 F 的参与是明确的。

请注意,MATLAB 将允许您通过计算 diff(f,x) 和 diff(f,y) 来进行符号验证。

更新

您可以通过使用 MATLAB执行这些步骤来获得解决方案。

syms x y c
P = 3*x*x + 4*x*y
Q = 2*x*x + 2*y
f = int(P,x)+subs(int(Q,y),x,0) + c

输出

f = c + y^2 + x^2*(x + 2*y)

一条线解决方案

f = int('3*x*x+4*x*y','x') + subs(int('2*x*x+2*y','y'),'x',0) + 'c'
于 2012-12-12T12:14:39.187 回答
0

反正你写错了。

我做了

>> dsolve ('(2*x^2+2*y)*Dy=-(3*x^2+4*x*y)', 'x')

并得到

ans =

   (x^4 - x^3 + C2)^(1/2) - x^2
 - (x^4 - x^3 + C2)^(1/2) - x^2

Wolfram Alpha 证实了 Matlab 的解决方案:

http://www.wolframalpha.com/input/?i=%283x%5E2%2B4xy%29%2B%282x%5E2%2B2y%29y%27%3D0

更新

可能这与您得到的结果一致,因为您F(x,y)用 DE 的解决方案来表达答案f(y)

于 2012-12-12T09:54:31.403 回答