(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')
但它给出了错误的结果。
还有其他解决方法吗???
(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')
但它给出了错误的结果。
还有其他解决方法吗???
不是 MATLAB 错了,它解决了y(x) 或 x(y) 的ODE。精确微分方程是我们在研究生阶段深入探讨的内容(至少对于工程师而言)。如果您在将其作为编程问题之前更多地解释数学,这将很有帮助。如果不解释 f(x,y) 是如何参与的,就不清楚了。
提出另一种方式(有点概念上的延伸,但我认为它表明 F 是一个很好的潜在函数)......
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'
反正你写错了。
我做了
>> 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)