美文网首页计算机中的数学
一文搞定双线性化(p=2或3)附Maple代码

一文搞定双线性化(p=2或3)附Maple代码

作者: Neural_PDE | 来源:发表于2019-04-27 15:10 被阅读0次

正向Hirota双线性化(p=2)

u    →    f    →  D

推广的双线性化(p=3)

D→f

逆向双线性化

f→u

#正向双线性化
restart:
with(PDETools): alias(u = u(x, y, z, t), f = f(x, y, z, t), A = A(x, y, z, t))

#输入方程
eq1 := 3*(Diff((diff(u, x))*(diff(u, y)), x))+diff(u, t, y)+diff(u, x, t)+diff(u, t, t)-(diff(u, z, z))
#(1)代入u=2(A)x  (A=lnf 此处先不代入化简,对应于前面的手算图纸)
eq2 = u = 2*(diff(A, x))
eq3 := dsubs(eq2, eq1)
#(2)对x积分
eq4 := int(eq3, x)
#(3)化简(两边同乘f^2)
eq5 := simplify(dsubs(A = ln(f), eq4*f^2))

#简化一下方便肉眼观查(此处也可以调用fafa函数包)
subs({(diff(f, z))^2 = f[z], diff(f, t) = f[t], diff(f, x) = f[x], diff(f, y) = f[y], diff(f, t, t) = f[tt], diff(f, x, t) = f[xt], diff(f, x, x) = f[xx], diff(f, y, t) = f[yt], diff(f, y, x) = f[yx], diff(f, z, z) = f[zz], diff(f, x, x, x) = f[xxx], diff(f, y, x, x) = f[yxx], diff(f, y, x, x, x) = f[yxxx]}, eq5)
#去系数
simplify((1/2)*%)


#逆向双线性化
restart:
with(PDETools): alias(u = u(x, y, z, t), f = f(x, y, z, t), A = A(x, y, z, t))

#输入方程
eq1 := 3*(Diff((diff(u, x))*(diff(u, y)), x))+diff(u, t, y)+diff(u, x, t)+diff(u, t, t)-(diff(u, z, z))
#(1)除以f^2
#(2)对x求导
eq2 := diff(eq1/f^2, x)
#(3)u=2(lnf)x逆运算 f=。。。参见手算图纸
eq3 := f = exp(int((1/2)*u, x))
AA := dsubs(eq3, eq2)

#令Vy=Ux
BB := subs(int((1/2)*(diff(u, y)), x) = (1/2)*v, AA)
#简化一下方便肉眼观查(此处也可以调用fafa函数包)
subs({diff(u, x) = u[x], diff(u, y) = u[y], diff(u, t, t) = u[tt], diff(u, x, t) = u[xt], diff(u, x, x) = u[xx], diff(u, y, t) = u[yt], diff(u, y, x) = u[yx], diff(u, z, z) = u[zz]}, 2*BB)


代码链接https://share.weiyun.com/533ej5g


另外附上fafa函数包:主要是为了减轻工作量而设计
主要有2个内容构成
1  D  →f(只需要输入双线性算子 即可得到 双线性形式)
2 f_x → df/dx (方便简便的输入双线性形式,反之直观的查看Maple结果)
使用方法见下图:

fafa函数包使用方法 黑色已经解决,蓝色部分待解决。

使用:

首先painleve分析得到变换

2输入D,得到f,验证u。(将f和u写在函数库。方便以后使用)

3使用f求出多种精确解。


If you are interested in this topic.
You can get in touch with me.
18234056952(Tel  wechat  qq)

相关文章

网友评论

    本文标题:一文搞定双线性化(p=2或3)附Maple代码

    本文链接:https://www.haomeiwen.com/subject/rpdknqtx.html