24小时热门版块排行榜    

查看: 1640  |  回复: 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

木虫 (小有名气)

引用回帖:
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的回帖
查看全部 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可解,那正确的语法也 ...

多谢指导  还要自己在研究研究
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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料求调剂 +5 @taotao 2026-03-21 5/250 2026-03-21 20:55 by lbsjt
[考研] 333求调剂 +5 87639 2026-03-21 7/350 2026-03-21 19:31 by ColorlessPI
[考研] 一志愿深大,0703化学,总分302,求调剂 +4 七月-七七 2026-03-21 4/200 2026-03-21 18:20 by 学员8dgXkO
[考研] 22 350 本科985求调剂,求老登收留 +3 李轶男003 2026-03-20 3/150 2026-03-21 13:28 by 搏击518
[考研] 332求调剂 +3 凤凰院丁真 2026-03-20 3/150 2026-03-21 10:27 by luoyongfeng
[考研] 求调剂 +3 Ma_xt 2026-03-17 3/150 2026-03-21 02:05 by JourneyLucky
[考研] 304求调剂 +6 曼殊2266 2026-03-18 6/300 2026-03-21 00:32 by JourneyLucky
[考研] 294求调剂材料与化工专硕 +15 陌の森林 2026-03-18 15/750 2026-03-20 23:28 by JourneyLucky
[考研] 308求调剂 +3 阿姐阿姐家啊 2026-03-18 3/150 2026-03-20 23:24 by JourneyLucky
[考研] 一志愿南京理工大学085701资源与环境302分求调剂 +4 葵梓卫队 2026-03-18 6/300 2026-03-20 23:02 by JourneyLucky
[考研] 317求调剂 +5 申子申申 2026-03-19 9/450 2026-03-20 22:26 by JourneyLucky
[考研] 350求调剂 +5 weudhdk 2026-03-19 5/250 2026-03-20 22:04 by luoyongfeng
[考研] 一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +5 @taotao 2026-03-20 5/250 2026-03-20 20:16 by JourneyLucky
[考研] 一志愿南理工085701环境302求调剂院校 +3 葵梓卫队 2026-03-20 3/150 2026-03-20 19:28 by zhukairuo
[考研] 08工学调剂 +5 用户573181 2026-03-20 5/250 2026-03-20 15:47 by xia_2003
[考博] 招收博士1-2人 +3 QGZDSYS 2026-03-18 3/150 2026-03-20 11:58 by 呱呱呱呱叫
[考研] 材料,纺织,生物(0856、0710),化学招生啦 +3 Eember. 2026-03-17 9/450 2026-03-18 10:28 by Eember.
[考研] 考研求调剂 +3 橘颂. 2026-03-17 4/200 2026-03-17 21:43 by 有只狸奴
[考研] [导师推荐]西南科技大学国防/材料导师推荐 +3 尖角小荷 2026-03-16 6/300 2026-03-16 23:21 by 尖角小荷
[考研] 0856求调剂 +3 刘梦微 2026-03-15 3/150 2026-03-16 10:00 by houyaoxu
信息提示
请填处理意见