matlab - 如何在 MatLab 中求解精确微分方程?

标签 matlab symbolic-math equations

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

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

solution

结果必须是:

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 是一个潜在的函数)...

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'

关于matlab - 如何在 MatLab 中求解精确微分方程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13836480/

相关文章:

用于漂亮输出的 Matlab/Mupad 符号简化

javascript - 这个图的等效 Javascript 方程式是什么?

image - 如何在 MATLAB 中创建复古图像?

MATLAB 误差线线条样式

latex - ``\nabla'' 符号错误地显示为黑色光盘

用户提供的C++解析方程

c - 求解带状矩阵方程组

matlab - 我的多元核估计计算有什么问题?

matlab - 如何用xline画多条线

python - 如何自动将 LaTeX 数学模式方程转换为 Python/numpy 代码?