偏微分方程组的数值解
mathematica吧
全部回复
仅看楼主
level 1
狗灬货 楼主
Needs["NDSolve`FEM`"];
\[CurlyEpsilon]1 = 50; \[CurlyEpsilon]2 = 20; \[CurlyEpsilon]3 = 50; \
a = 20; c0 = 0.1; i0 = 9; d = 250; c1 = 0.01;
sol = NDSolve[{D[c[x, t], t] == -a*i[x, t]*c[x, t] + D[c[x, t], x, x],
D[i[x, t], x] == -2.303 \[Xi][x, t] i[x, t],
\[Xi][x,
t] == (\[CurlyEpsilon]1 - \[CurlyEpsilon]2) c[x,
t] + \[CurlyEpsilon]2*c0 (1 - 0.25 x/d) + \[CurlyEpsilon]3,
c[0, t] == c0, i[0, t] == i0, c[x, 0] == c0,
i[400, t] ==
0, \[Xi][0, t] == \[CurlyEpsilon]1*c0 + \[CurlyEpsilon]3,
NeumannValue[i[x, t], x][0, 0] == -2.303
}, c, {x, 0, 400}, {t, 0, 600}, Method -> {FiniteElements}]
不知道下一步怎么修改,规定了一些精度会显示“只有机器精度代码可以使用”,以及“小于WorkingPrecision()”,求给思路
2023年04月08日 04点04分 1
吧务
level 15
……
1. 第一步,学会查帮助。
2. 你那NeumannValue用法明显是错的,帮助里啥时候这么用NeumannValue了?
3. FiniteElements也明显拼错了。
4. 别把有限元法当万金油。
5. 如果你搞不清楚NeumannValue的用法,并且问题没有定义在不规则区域上,并且问题还含时,那就干脆别用有限元。
6. 尽量别往NDSolve里面塞代数方程。
7. 经验:偏微分方程求解出问题多半跟精度选项没关系。
2023年05月06日 05点05分 2
1