结果与预想不符
mathematica吧
全部回复
仅看楼主
level 6
r = 5*10^-5(*半径:m*);
\[Alpha] = 5.5*10^-7(*线膨胀系数:1/℃*);
k = 1.3(*导热系数:W/(m*℃)*);
\[Rho] = 2650(*石英密度:KG/m^3*);
L = 20(*长度:m*);
m = \[Pi]*r^2*L*\[Rho](*质量:KG*);
c = 966(*石英比热容J/KG*℃*);
S = Integrate[Integrate[r, {\[Theta], 0, 2 \[Pi]}], {l, 0, 20}];
sol = NDSolve[{
W'[t] == (1/2 - (W[t]/(m*c)))*k*S/r,
f[t] == t/2,
g[t] == Integrate[W[t]/(m*c), t];
g[0] == 0,
f[0] == 0,
W[0] == 0
}, {W[t], f[t], g[t]}, {t, 0, 160}];
Plot[Evaluate[{f[t], g[t], W[t]} /. sol], {t, 0, 160},
PlotLegends -> {"f[t]", "g[t]", "W[t]"}]
画出来的图应该是给g[t]小于f[t]且斜率且斜率(w)慢慢接近1/2.的。这里是在模拟一个吸热升温的过程。f[t]是环境温度函数,g[t]是介质温度,w[t]是吸热速率。
吸热物体是圆柱形。用到的是如下公式
2024年05月02日 09点05分 1
level 9
ClearAll["Global`*"];
r = 5*10^-5(*半径:m*);
\[Alpha] = 5.5*10^-7(*线膨胀系数:1/℃*);
k = 1.3(*导热系数:W/(m*℃)*);
\[Rho] = 2650(*石英密度:KG/m^3*);
L = 20(*长度:m*);
m = \[Pi]*r^2*L*\[Rho](*质量:KG*);
c = 966(*石英比热容J/KG*℃*);
S = Integrate[Integrate[r, {\[Theta], 0, 2 \[Pi]}], {l, 0, 20}];
W = NDSolveValue[{W'[t] == (1/2 - (W[t]/(m*c)))*k*S/r, W[0] == 0},
W, {t, 0, 160}];
f[t_] := t/2;
g[t_] := NIntegrate[W[\[Tau]]/(m*c), {\[Tau], 0, t}];
subfig =
LogPlot[{f[t], g[t], W[t]}, {t, 0, 0.05}, PlotLegends -> None];
LogPlot[{f[t], g[t], W[t]}, {t, 0, 160},
PlotLegends -> {"f[t]", "g[t]", "W[t]"},
Epilog -> Inset[subfig, {50, -6}, Automatic, Automatic]]
不知道你的问题在哪里. 虽然 g[t] 小于 f[t] 但渐进的速度很快, W[t] 渐进于~0.201
2024年05月03日 07点05分 2
谢谢大佬[花心][花心]
2024年05月05日 09点05分
吧务
level 15
……
1. g[t] == Integrate[W[t]/(m*c), t];
g[0] == 0, <-你这里怎么是用分号分隔的?
2. NDSolve(至少目前)是没法直接正确处理积分式的,你得写成
g'[t] == W[t]/(m*c)
才行。
3. 就算你方程列对了,W[t]也绝不会趋向1/2,你这式子里还除了 m*c 呢。
4. 时间区间太长了,结束时间改成1/3左右就差不多了。
2024年05月04日 03点05分 3
好的,感谢帮助[花心][花心]
2024年05月05日 09点05分
1