24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 1663  |  回复: 5
本帖产生 1 个 计算强帖 ,点击这里进行查看

北-极-星

木虫 (正式写手)

[求助] Mathematica偏微分方程求解编程求助 已有1人参与

如图,我想在Mathematica中编程求出此方程的含边界条件的解,自己编程如下,不能运行,求大神帮忙指点。。
DSolve[{(\[PartialD]/\[PartialD]t)c[z, t] -
    D*(\[PartialD]/\[PartialD]z)(\[PartialD]/\[PartialD]z)c[z, t] ==
   0, c[z, t == 0] == Subscript[c, 0],
  D (\[PartialD]/\[PartialD]z)c[z == 1/2*Subscript[h, s], t] == 0,
  D (\[PartialD]/\[PartialD]z)
     c[z == 1/2*Subscript[h, s] + Subscript[h, f], t] == Subscript[J,
   0]}, c[z, t], {z, t},
Constants -> {D, Subscript[c, 0], Subscript[h, s], Subscript[h, f],
   Subscript[J, 0]}]

Mathematica偏微分方程求解编程求助
1.jpg


Mathematica偏微分方程求解编程求助-1
2.jpg


Mathematica偏微分方程求解编程求助-2
程序.jpg
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
dbb627: 金币+5, 计算强帖+1, 应助指数+1, 谢谢指导 2015-01-06 23:45:02
首先要指出的是,楼主的代码里语法错误非常多,并且都是很明显的错误。Mathematica(啊,确切地说是Mathematica内所使用的Wolfram)终究是编程语言,它有它明确的语法规范。就算这个方程DSolve可解,那正确的语法也应该是
CODE:
With[{c = c[z, t]}, eqn = D[c, t] - d D[c, z, z] == 0];
bc = {c[z, 0] == c0, Derivative[1, 0][c][hs/2, t] == 0, Derivative[1, 0][c][hs/2 + hf, t] == j0/d};
DSolve[{eqn, bc}, c[z, t], t]

然后,上面这段代码依旧会将输入原样返回,并提示软件无法求解这个问题。这个方程之所以会无法求解,个人觉得和Mathematica的DSolve对偏微分方程符号解的求解力弱有一定关系,但是更多的应该是因为Mathematica在总体上排斥使用级数来表示解(顺便Maple似乎也一样),理由嘛,个人猜测和级数的收敛性判定的困难有关,当然,这只是猜测。

题外话好像说的多了一点。既然Mathematica无法直接求解这个问题,那么我们有没有迂回策略呢?答案是有的。我们利用Mathematica来复现一般偏微分方程里面的相应求解方法就好了。

先拉普拉斯变换并求解所得的常微分方程:
CODE:
sol = FullSimplify[
  DSolve[LaplaceTransform[{eqn, Rest@bc}, t, s] /.
      bcrule[[1]] /. {l_[c[z, t], t, s] :> c[z],
      l_[d_[a_, 0][c][z_, t], t, s] :> d[a][c][z]}, c[z], z][[1, 1,
    2]], d > 0 && hf != 0 && Abs[hs/2] <= Abs[z] <= Abs[hs/2 + hf]]

然后,因为我们已经知道这个东西反变换没有有限形式的解,而Mathematica不能直接给出级数解,那么,我们就把上面的结果在{hs/2, hs/2+hf}上做傅立叶余弦展开:
CODE:
(* 平移到{0, hf} *)
midsol = sol /. z -> z + hs/2 // Simplify
(* term1为余弦展开的第0项。这项没包含在通项里所以要单独求。 *)
term1 = FourierCosSeries[midsol, z, 0, FourierParameters -> {1, Pi/hf}, Assumptions -> hf > 0]
(* Mathematica虽然不乐意使用无穷级数表示解,却不缺求解级数系数通项的能力 *)
term2 = FourierCosCoefficient[midsol, z, n,
  FourierParameters -> {1, Pi/hf}, Assumptions -> hf > 0]

因为拉普拉斯变换是线性变换,我们只要把上面的term2拉普拉斯反变换后再(在形式上)将它加合再把term1的反变换也加进来(别忘了把坐标系换回去)就获得了这个方程的级数解了:
CODE:
# + HoldForm[
    Sum[#2, {n, 1,
      Infinity}]] & @@ ((Simplify[InverseLaplaceTransform[#, s, t],
       d > 0] /. z -> z - hs/2) & /@ {term1, term2 Cos[Pi n/hf z]})

Mathematica偏微分方程求解编程求助-3

嗯……形式上和你的有一点区别,主要原因是Sum内部的两项其实可以展开,而其中的一部分是可以求和的——这一求和Sum也确实可以做到,但是,Mathematica默认情况下给出的形式和你的文献所给的不太一样,并且我暂时没找到将该式子化简成你的那个形式的方法。不过至此为止你的问题也基本解决了,而且我回答这个半年前的问题也纯粹是饭前血糖低导致的脑抽。所以,到此为止吧。

» 本帖已获得的红花(最新10朵)

小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
2楼2015-01-06 19:02:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

北-极-星

木虫 (正式写手)

送红花一朵
引用回帖:
2楼: Originally posted by xzczd at 2015-01-06 19:02:51
首先要指出的是,楼主的代码里语法错误非常多,并且都是很明显的错误。Mathematica(啊,确切地说是Mathematica内所使用的Wolfram)终究是编程语言,它有它明确的语法规范。就算这个方程DSolve可解,那正确的语法也 ...

多谢指导  还要自己在研究研究
3楼2015-01-06 22:04:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

北-极-星

木虫 (正式写手)

送红花一朵
引用回帖:
2楼: Originally posted by xzczd at 2015-01-06 19:02:51
首先要指出的是,楼主的代码里语法错误非常多,并且都是很明显的错误。Mathematica(啊,确切地说是Mathematica内所使用的Wolfram)终究是编程语言,它有它明确的语法规范。就算这个方程DSolve可解,那正确的语法也 ...

多谢指导   我自个再研究研究
4楼2015-01-06 22:05:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

引用回帖:
3楼: Originally posted by 北-极-星 at 2015-01-06 22:04:03
多谢指导  还要自己在研究研究...

……仔细一看发现我漏掉了bcrule的定义。需要在bc的定义后面增加一行:
CODE:
bcrule = Rule [at=315114]@@[/at] bc

或者直接把bcrule换成
CODE:
c[z, 0] -> c0

也可以。
小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
5楼2015-01-07 13:32:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

引用回帖:
2楼: Originally posted by xzczd at 2015-01-06 19:02:51
首先要指出的是,楼主的代码里语法错误非常多,并且都是很明显的错误。Mathematica(啊,确切地说是Mathematica内所使用的Wolfram)终究是编程语言,它有它明确的语法规范。就算这个方程DSolve可解,那正确的语法也 ...

请收下小的这个月的膝盖。
Be water, my friend.
6楼2015-01-07 19:09:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 北-极-星 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿鲁东大学071000生物学学硕初试分数276求调剂 +26 慕绝cc 2026-04-09 30/1500 2026-04-14 18:50 by 蔡苏阳
[考研] 291分调剂 +6 上岸小莹加油 2026-04-09 7/350 2026-04-14 17:58 by lhj2009
[考研] 297工科调剂? +13 河南农业大学-能 2026-04-13 13/650 2026-04-14 16:46 by Art1977
[考研] 各位老师好,求调剂,本科211,一志愿天津大学生物与医药学硕,差两名录取。 +11 路六六jjj 2026-04-13 11/550 2026-04-14 16:01 by zs92450
[考研] 288求调剂,一志愿华南理工大学071005 +25 ioodiiij 2026-04-08 25/1250 2026-04-14 15:59 by zs92450
[考研] 一志愿华南理工大学331分材料求调剂 +10 天下ww 2026-04-09 11/550 2026-04-13 23:25 by pies112
[考研] 一志愿中南大学 0855 机械 286 求调剂 +11 不会吃肉 2026-04-12 11/550 2026-04-13 21:59 by bljnqdcc
[考研] 一志愿双非085400电子信息344 求调剂,对材料和化学方向也感兴趣 +12 无情的小羊 2026-04-09 13/650 2026-04-13 14:17 by 张zhihao
[考研] 322求调剂 +6 123安康 2026-04-12 13/650 2026-04-12 15:51 by 123安康
[考研] 307求调剂 +10 tzq94092 2026-04-10 10/500 2026-04-12 08:18 by wise999
[考研] 352 求调剂 +6 yzion 2026-04-11 8/400 2026-04-11 16:24 by 明月此时有
[考研] 本人女孩 +7 吼吼, 2026-04-10 9/450 2026-04-11 14:45 by ACS Nano——
[考研] 材料与化工调剂 +12 否极泰来2026 2026-04-10 13/650 2026-04-11 00:28 by wangjihu
[考研] 中科院总分315求调剂 +8 lallalh 2026-04-09 8/400 2026-04-10 19:30 by dick_runner
[考研] 282,电气工程专业,求调剂,不挑专业 +9 jggshjkkm 2026-04-10 9/450 2026-04-10 14:55 by 逆水乘风
[考研] 本科211 工科085400 280分求调剂 可跨专业 +3 LZH(等待调剂中 2026-04-09 3/150 2026-04-09 21:29 by wutongshun
[考研] 0703化学求调剂 +21 不知名的小卅 2026-04-08 21/1050 2026-04-09 18:55 by l_paradox
[考研] 化学工程与技术专业一志愿哈工程 291分B区 国家级大创负责人 有一作论文 +13 Emmy~ 2026-04-09 13/650 2026-04-09 14:47 by only周
[考研] 求调剂 +3 猪肉墩粉条cc 2026-04-08 4/200 2026-04-09 10:05 by 猪肉墩粉条cc
[考研] 软件工程求调剂22软工296分求调剂,接受跨调 +4 yangchen2017 2026-04-08 5/250 2026-04-08 21:56 by 土木硕士招生
信息提示
请填处理意见