网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月29日漏签0天
mathematica吧 关注:19,861贴子:74,031
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1回复贴,共1页
<<返回mathematica吧
>0< 加载中...

关于非线性偏微分方程的数值求解

  • 只看楼主
  • 收藏

  • 回复
  • 凭窗梦龙
  • 还分不清
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
感谢贴吧大佬的帮助,在解决了上一次的问题后我对方程进行了一些改变,主要是加入了非线性项,代码如下
Clear["Global`*"];
pin = 100*(10^(-3)); g = 58*(10^-6); s = 100*(10^-6); w =
300*(10^-6); lamda0 = 46; d = 10*(10^-6); l = 200*(10^-6); L :=
d + l + lc; W := g + s/2 + w; T0 = 300; lc = 300*(10^-6); ka =
10*(10^7);
ds = 22*(10^-6);
\[CapitalPhi]0 := 2*pin/(ds*(g^2));
sigmod[x_, a_] := 1/(E^(-x*a) + 1);
x1[x_] := sigmod[x - (lc - g/4), ka];
x2[x_] := sigmod[x - lc, ka];
x3[x_] := sigmod[x, ka];
x4[x_] := sigmod[x - L, ka];
y1[y_] := sigmod[y - w, ka];
y2[y_] := sigmod[y - (w + g), ka];
y3[y_] := sigmod[y - W, ka];
y4[y_] := sigmod[y, ka];
ux[x_] := x1[x] - x2[x];
uy[y_] := y1[y] - y2[y];
uz[x_, y_] := ux[x]*uy[y]*\[CapitalPhi]0;
lamda[x_,
y_] := (1.5*lamda0*(x3[x] - x2[x]) +
lamda0*(x2[x] - x4[x]))*(y4[y] - y3[y]);
region = Rectangle[{0, 0}, {L, W}];
pdeSoln =
NDSolveValue[{\!\(TraditionalForm\`\((\(lamda(x, y)\)\ \*
FractionBox[
RowBox[{
SuperscriptBox["\[PartialD]", "2"],
RowBox[{"t", "(",
RowBox[{"x", ",", "y"}], ")"}]}],
RowBox[{
RowBox[{"\[PartialD]", "x"}], "\[ThinSpace]",
RowBox[{"\[PartialD]", "x"}]}],
MultilineFunction->None] + \*
FractionBox[
RowBox[{"\[PartialD]",
RowBox[{"lamda", "(",
RowBox[{"x", ",", "y"}], ")"}]}],
RowBox[{"\[PartialD]", "x"}],
MultilineFunction->None]\ \*
FractionBox[
RowBox[{"\[PartialD]",
RowBox[{"t", "(",
RowBox[{"x", ",", "y"}], ")"}]}],
RowBox[{"\[PartialD]", "x"}],
MultilineFunction->None])\) + \((\(lamda(x, y)\)\ \*
FractionBox[
RowBox[{
SuperscriptBox["\[PartialD]", "2"],
RowBox[{"t", "(",
RowBox[{"x", ",", "y"}], ")"}]}],
RowBox[{
RowBox[{"\[PartialD]", "y"}], "\[ThinSpace]",
RowBox[{"\[PartialD]", "y"}]}],
MultilineFunction->None] + \*
FractionBox[
RowBox[{"\[PartialD]",
RowBox[{"lamda", "(",
RowBox[{"x", ",", "y"}], ")"}]}],
RowBox[{"\[PartialD]", "y"}],
MultilineFunction->None]\ \*
FractionBox[
RowBox[{"\[PartialD]",
RowBox[{"t", "(",
RowBox[{"x", ",", "y"}], ")"}]}],
RowBox[{"\[PartialD]", "y"}],
MultilineFunction->None])\)\) + uz[x, y] ==
NeumannValue[0, y == W] + NeumannValue[0, x == 0],
{DirichletCondition[t[x, y] == T0, x == L],
DirichletCondition[t[x, y] == T0, y == 0]}},
t, {x, y} \[Element] region];
ContourPlot[pdeSoln[x, y], {x, y} \[Element] region,
Mesh -> None, ColorFunction -> "TemperatureMap",
Contours -> 30, AspectRatio -> Automatic,
FrameTicksStyle -> Directive[Black, 18]]
Plot3D[pdeSoln[x, y], {x, y} \[Element] region]
但是求解出现问题,如下
NDSolveValue::femdpop: The NDSolve`FEM`FEMStiffnessElements operator failed.
请问各位该如何解决


  • xzcyr
  • 吧主
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
……看了两遍没看到你的方程里面有非线性项,这依旧是一个线性的偏微分方程,也就是说,NDSolve在求解一个线性偏微分方程的边值问题时出了“错”,对此我只能想到一个理由:你的模型有问题,请仔细检查。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1回复贴,共1页
<<返回mathematica吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示