公告:本站正式转型为非交互式静态网站!
转型:本站将通过笔记和博客的形式继续为大家服务,关于 Mathematica 问答服务请移步至QQ群:365716997
联系:如有问题请联系QQ群管理员,或发送邮件至:lixuan.xyz@qq.com。
感谢:最后非常感谢大家多年来的支持与帮助!
参考《互联网跟帖评论服务管理规定》《中华人民共和国网络安全法》《网络信息内容生态治理规定》《互联网用户账号信息管理规定》

—— 2022-11-27

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

+2 投票
1.5k 浏览

问题是求解一个矩形区域(0<=x<=1.5,0<=y<=0.5)的流体的热传导问题。方程如下:

Clear["Global`*"]
\[Lambda]1 = 15; T1 = 308; c = 42; \[Rho] = 1; \[Lambda] = 0.64;
T0[t_, x_, y_] := 320
TR[t_, x_, y_] := 340 /; x == 1.4 && y == 0.4
TR[t_, x_, y_] := 0 /; x != 1.4 || y != 0.4
Vr[t_, x_, y_] := 0.1 /; x == 1.4 && y == 0.4
Vr[t_, x_, y_] := 0 /; x != 1.4 && y != 0.4
equ = {D[T[t, x, y], 
      t] - \[Lambda]/(c \[Rho]) Laplacian[
       T[t, x, y], {x, y}] - (TR[t, x, y](*-Integrate[T[t,x,y],{x,0,
       1.5},{y,0,0.5}]/1.5/0.5*)) Vr[t, x, y]/(1.5*0.5) == 
    0, (D[T[t, x, y], y] /. y -> 0.5) == 
    0(*\[Lambda]1/\[Lambda] T1-\[Lambda]1/\[Lambda](T[t,x,
   y]/.y\[Rule]0.5)*), (D[T[t, x, y], x] /. x -> 0.0) == 
    0, (D[T[t, x, y], x] /. x -> 1.5) == 
    0, (D[T[t, x, y], y] /. y -> 0.0) == 0, T[0., x, y] == 320};
NDSolve[equ, T, {t, 0, 60}, {x, 0, 1.5}, {y, 0, 0.5}]
Manipulate[
 ContourPlot[Evaluate[T[t, x, y] /. %], {x, 0, 1.5}, {y, 0, 0.5}, 
  PlotLegends -> Automatic, PlotRange -> All], {t, 0, 50}]

但是出现问题Syntax::sntxi: Incomplete expression; more input is needed .请问是什么原因啊。
另,有没有必要使用自带的NeumannValue函数,NeumannValue又怎么用在分段边界条件上?

分类:函数 | 用户: 无知小儿 (116 分)

1个回答

0 投票
你所说的这个问题我无法重现,推测跟StandardForm下的某种格式化上的问题有关,总之你重贴回软件里应该就不会有这个问题。然后,

1.分段函数别用/;定义,因为这种基于模式匹配的分段方法问题颇多,这里不详述,总之改用Piecewise。

2.点源或者DiracDelta,是不能这么翻译的,具体参看这些帖子:

http://mathematica.stackexchange.com/a/71945/1871

http://tieba.baidu.com/p/4126799131

https://zhidao.baidu.com/question/2270031661852582188
用户: xzczd (2.2k 分)
...