24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 1658  |  回复: 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的回帖

北-极-星

木虫 (正式写手)

送红花一朵
引用回帖:
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的回帖
查看全部 6 个回答

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可解,那正确的语法也 ...

多谢指导   我自个再研究研究
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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 药学求调剂 +4 RussHu 2026-04-12 5/250 2026-04-14 11:41 by pengliang8036
[考研] 药学305求调剂 +9 玛卡巴卡boom 2026-04-10 9/450 2026-04-14 11:20 by 不我拉绿卡
[考研] 本科211,报考085601-310分 +13 ararak 2026-04-13 13/650 2026-04-14 09:28 by 852137818
[考研] 085801电气专硕272求调剂 +13 电气李 2026-04-13 14/700 2026-04-14 08:50 by 木木mumu~
[考研] 求调剂,985材料与化工348分 +9 涵竹刘 2026-04-11 14/700 2026-04-13 22:26 by 涵竹刘
[考研] 344 材料专业 求调剂211 无地域要求 +8 hualkop 2026-04-11 8/400 2026-04-12 22:24 by fqwang
[硕博家园] 新一代电子信息294求调剂 不挑学校 +7 Ytyt11 2026-04-09 8/400 2026-04-12 16:57 by ajpv风雷
[考研] 一志愿西北工业大学289 085602 +33 yang婷 2026-04-10 34/1700 2026-04-12 08:11 by Art1977
[考研] 296求调剂 +6 汪!?! 2026-04-09 6/300 2026-04-11 11:25 by zhq0425
[考研] 346,工科0854求调剂,专硕 +7 moser233 2026-04-10 8/400 2026-04-11 08:52 by 猪会飞
[考研] 284求调剂 +12 archer.. 2026-04-10 13/650 2026-04-11 08:44 by zhq0425
[考研] 本科211 工科085400 280分求调剂 可跨专业 +11 LZH(等待调剂中 2026-04-10 11/550 2026-04-11 08:39 by zhq0425
[考研] 一志愿211,化学310分,本科重点双非,求调剂 +23 努力奋斗112 2026-04-08 23/1150 2026-04-10 23:29 by 314126402
[考研] 263能源动力专硕求调剂 +3 加大号饭盒袋 2026-04-10 3/150 2026-04-10 22:23 by 286640313
[考研] 吉大计算机技术331分,英语六级,求调剂 +3 峰峰021116 2026-04-09 3/150 2026-04-10 20:01 by chemisry
[考研] 求调剂 +5 不会飞的鱼@ 2026-04-10 5/250 2026-04-10 19:07 by chemisry
[考研] 材料专硕(0856) 339分求调剂 +9 哈哈哈鹅哈哈哈 2026-04-09 10/500 2026-04-09 20:01 by Orcid
[考研] 调剂 +19 2261744733 2026-04-08 19/950 2026-04-09 19:11 by vgtyfty
[考研] 086004 求调剂 309 +7 Yin DY 2026-04-08 7/350 2026-04-09 13:59 by Delta2012
[考研] 275 求调剂 +8 Lei812514 2026-04-07 8/400 2026-04-08 12:46 by chemisry
信息提示
请填处理意见