公告:1)网站程序升级:Q2A升级到1.8.6,Wordpress升级到5.7.2
2)修复了头像加载慢与提交问题反应慢等问题
2021-06-16

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

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

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

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

社区建议QQ群:365716997

分类

+1 投票
576 浏览
Remove["Global`*"] // Quiet
a = 160; b = 160; \[Epsilon] = 1600; G = 46/100; d = 800; \[Mu] = 
 17/10;
\[Tau]cs = 260; \[Tau]cd = 200;
x0 = 349; f = 8;

x[t_] := x0 Sin[2 Pi f t];
\[Tau]cu[\[Gamma]_] := \[Tau]cs (1 + (\[Tau]cd/\[Tau]cs) Exp[-a (\
\[Gamma]^2)^(1/2)]) Tanh[\[Epsilon] \[Gamma] ];
\[Tau]cl[\[Gamma]_] := \[Tau]cd (1 - 
     Exp[-b (\[Gamma]^2)^(1/2)]) Tanh[\[Epsilon] \[Gamma] ];
\[Tau]k[\[Gamma]_] := G Tanh[d \[Gamma]];
\[Tau]u[\[Gamma]_] := \[Tau]cu[\[Gamma]] + \[Tau]k[\[Gamma]] + \[Mu] \
\[Gamma];
\[Tau]l[\[Gamma]_] := \[Tau]cl[\[Gamma]] + \[Tau]k[\[Gamma]] + \[Mu] \
\[Gamma];

\[Tau][\[Gamma]_[t_]] := 
 Module[{d\[Gamma], z}, d\[Gamma] = D[\[Gamma][t], t]; 
  Piecewise[{{\[Tau]u[\[Gamma][t]], 
     d\[Gamma] \[Gamma][t] >= 0}, {\[Tau]l[\[Gamma][t]], 
     d\[Gamma] \[Gamma][t] < 0}}]]

\[Tau][z[t]](* 这个结果如预期 *)

(* 但怎么才能画出\[Tau][x[t]呢 *)
Plot[\[Tau][x[t]], {t, 0, 20/f}, 
 PlotRange -> All, PlotTheme -> "Detailed"]

分类:函数 | 用户: pfg (486 分)
修改于 用户:pfg

2 个回答

+3 投票
 
已采纳

问题在于\[Tau][x[t]]因为x已经定义,会变成\[Tau][x0 Sin[2 Pi f t]],因而无法与\[Tau][\[Gamma]_[t_]]匹配

解决方法是用HoldFirst,完整代码如下

Remove["Global`*"] // Quiet
a = 160; b = 160; \[Epsilon] = 1600; G = 46/100; d = 800; \[Mu] = 
 17/10;
\[Tau]cs = 260; \[Tau]cd = 200;
x0 = 349; f = 8;
SetAttributes[\[Tau], HoldFirst]
x[t_] := x0 Sin[2 Pi f t];
\[Tau]cu[\[Gamma]_] := \[Tau]cs (1 + (\[Tau]cd/\[Tau]cs) Exp[-a (\
\[Gamma]^2)^(1/2)]) Tanh[\[Epsilon] \[Gamma]];
\[Tau]cl[\[Gamma]_] := \[Tau]cd (1 - 
     Exp[-b (\[Gamma]^2)^(1/2)]) Tanh[\[Epsilon] \[Gamma]];
\[Tau]k[\[Gamma]_] := G Tanh[d \[Gamma]];
\[Tau]u[\[Gamma]_] := \[Tau]cu[\[Gamma]] + \[Tau]k[\[Gamma]] + \[Mu] \
\[Gamma];
\[Tau]l[\[Gamma]_] := \[Tau]cl[\[Gamma]] + \[Tau]k[\[Gamma]] + \[Mu] \
\[Gamma];

\[Tau][\[Gamma]_[t_]] := 
 Module[{d\[Gamma], z}, d\[Gamma] = \[Gamma]'[t];
  Piecewise[{{\[Tau]u[\[Gamma][t]], 
     d\[Gamma] \[Gamma][t] >= 0}, {\[Tau]l[\[Gamma][t]], 
     d\[Gamma] \[Gamma][t] < 0}}]]

\[Tau][z[t]](*这个结果如预期*)

(*但怎么才能画出\[Tau][x[t]呢*)
Plot[\[Tau][x[t]], {t, 0, 20/f}, PlotRange -> All, 
 PlotTheme -> "Detailed"]
效果如图

(需要注意的是这个图在版本11里由于未知的bug画不出来,版本9和10都没有问题

用户: 无影东瓜 (1.2k 分)
采纳于 用户:pfg
谢谢,很好地解决了我的问题,谢谢告知11的bug
0 投票

嗯,的确是有点特殊,用

^:=

试试?

用户: xinxin-guo (41 分)
...