Plot 绘图时使用Mathematica 1/0无限表达式

Plot 绘图时使用Mathematica 1/0无限表达式,plot,expression,wolfram-mathematica,infinite,Plot,Expression,Wolfram Mathematica,Infinite,很抱歉,我无法粘贴mathematica可以显示的内容(这里是新手)。然而,我尝试了几种解决方案来摆脱L[theta]的1/0 inf表达式,但我没有得到它 请将其复制粘贴到笔记本并运行 我用我的平方函数乘以Lθ,使未定义的面积等于零(f.e2a,Pi-2a应该和其他区间一样为零),但它不起作用 如何正确识别此函数 提前谢谢。这个 J = 0.05; B = 0.02; Tload[t_] := 0.0; R1 = 2; \[Alpha] = 30*\[Pi]/180; d = 0.05; g

很抱歉,我无法粘贴mathematica可以显示的内容(这里是新手)。然而,我尝试了几种解决方案来摆脱L[theta]的1/0 inf表达式,但我没有得到它

请将其复制粘贴到笔记本并运行

我用我的平方函数乘以Lθ,使未定义的面积等于零(f.e2a,Pi-2a应该和其他区间一样为零),但它不起作用

如何正确识别此函数

提前谢谢。

这个

J = 0.05;
B = 0.02;
Tload[t_] := 0.0;
R1 = 2;
\[Alpha] = 30*\[Pi]/180;
d = 0.05;
g = 0.001;
Nturns = 200;
\[Mu]0 = 4*\[Pi]*10^(-7);
r = 0.03;
lm = 0.02;
d = 0.1;
W = Sqrt[2*r^2 - 2*r^2*Cos[2*a]];
Rgmax = g/(\[Mu]0*r*d);
Rm = lm/(\[Mu]0*W*d);
square[x_, x1_, x2_] := UnitStep[x - x1]*(1 - UnitStep[x - x2])
Rg[\[Theta]_] := 
 Rgmax/((2 \[Alpha] - Mod[\[Theta][t], \[Pi]])*
     square[Mod[\[Theta][t], \[Pi]], -2 \[Alpha], 
      2 \[Alpha]] + (2 \[Alpha] - Mod[-\[Theta][t], \[Pi]])*
     square[Mod[-\[Theta][t], \[Pi]], -2 \[Alpha], 2 \[Alpha]])
L[\[Theta]_] := 
 Nturns^2/(
  2*Rg[\[Theta]] + 
   Rm) *(square[Mod[\[Theta][t], \[Pi]], -2 \[Alpha], 2 \[Alpha]] + 
    square[Mod[-\[Theta][t], \[Pi]], -2 \[Alpha], 2 \[Alpha]])
Plot[L[\[Theta]], {\[Theta][t], -8 \[Alpha], 8 \[Alpha]}, 
 PlotRange -> All]

我所做的就是修正你的a和α以及θ[t]和θ的混淆

θ是一个变量,θ[t]是一个函数。对此有一个复杂的解释,但这些不一定是同一件事,对Mathematica来说可能意味着非常不同的事情。你越是偏离数学中非常传统的做事方式,你就越可能陷入困惑的境地,无法理解为什么它没有做到你期望的事情。

这是什么

J = 0.05;
B = 0.02;
Tload[t_] := 0.0;
R1 = 2;
\[Alpha] = 30*\[Pi]/180;
d = 0.05;
g = 0.001;
Nturns = 200;
\[Mu]0 = 4*\[Pi]*10^(-7);
r = 0.03;
lm = 0.02;
d = 0.1;
W = Sqrt[2*r^2 - 2*r^2*Cos[2*a]];
Rgmax = g/(\[Mu]0*r*d);
Rm = lm/(\[Mu]0*W*d);
square[x_, x1_, x2_] := UnitStep[x - x1]*(1 - UnitStep[x - x2])
Rg[\[Theta]_] := 
 Rgmax/((2 \[Alpha] - Mod[\[Theta][t], \[Pi]])*
     square[Mod[\[Theta][t], \[Pi]], -2 \[Alpha], 
      2 \[Alpha]] + (2 \[Alpha] - Mod[-\[Theta][t], \[Pi]])*
     square[Mod[-\[Theta][t], \[Pi]], -2 \[Alpha], 2 \[Alpha]])
L[\[Theta]_] := 
 Nturns^2/(
  2*Rg[\[Theta]] + 
   Rm) *(square[Mod[\[Theta][t], \[Pi]], -2 \[Alpha], 2 \[Alpha]] + 
    square[Mod[-\[Theta][t], \[Pi]], -2 \[Alpha], 2 \[Alpha]])
Plot[L[\[Theta]], {\[Theta][t], -8 \[Alpha], 8 \[Alpha]}, 
 PlotRange -> All]

我所做的就是修正你的a和α以及θ[t]和θ的混淆


θ是一个变量,θ[t]是一个函数。对此有一个复杂的解释,但这些不一定是同一件事,对Mathematica来说可能意味着非常不同的事情。在Mathematica中,你越是偏离非常传统的做事方式,你就越可能陷入混乱的境地,无法理解为什么它没有做到你期望的事情。

你的Rg[]中有零分母。Rg[\[Theta]:=(denom=((2\[Alpha]-Mod[\[Theta],\[Pi]])方形[Mod[\[Theta],\[Pi]],-2\[Alpha],-2\[Alpha],-2\[Alpha]+(2\[Alpha]-Mod[-\[Theta],\[Pi]],-2\[Pi]],-2\[Alpha]);如果[denom==0,打印[[Zero denom];1,denom];我还将代码中的\[Theta][t]改为\[Theta],使其更为正常。Theta[t]是一个变量,它将放入微分方程中,用NDSolve函数求解,在这个阶段,它与否无关。然而,Rg[theta]是零,我知道它也应该是零。请尝试绘制1/Rg[theta],因为没有1/0表达式。如果你试图求解或绘制1/(Rg[theta]+Rm,它也在L[theta]的定义中,它给出了未定义的1/0间隔:(什么是
a
?我猜你从
a
变为
alpha
,错过了一个..顺便说一句,你可以使用
UnitBox
,虽然我认为这与你的错误无关是的,很抱歉a是alpha,但正如你所说的,我的错误直接与分母中的Rm有关。Rg中有0,但当标绘1/Rg时没有错误。我不明白:(他们中的任何一个解决了这个问题?你的Rg[\[Theta]:=(denom=((2\[Alpha]-Mod[\[Theta],\[Pi]])*平方[Mod[\[Theta],\[Pi]],-2\[Alpha],2\[Alpha]+(2\[Alpha]-Mod[-\[Theta],[Pi]])*平方[Mod[-\[Theta],[Pi],-2\[Alpha],2\[Alpha]];如果[denom=];我还将代码中的\[Theta][t]改为\[Theta],使其更正常。Theta[t]是一个变量,它将放入微分方程中,用NDSolve函数求解,在这个阶段,它是否依赖于t并不重要。但是,Rg[Theta]中有零,我知道它也应该是。请尝试绘制1/Rg[Theta]没有1/0表达式。如果您尝试求解或绘制1/(Rg[theta]+Rm,它也在L[theta]的定义中,则会给出未定义的1/0间隔:(什么是
a
?我猜你从
a
变为
alpha
,错过了一个..顺便说一句,你可以使用
UnitBox
,虽然我认为这与你的错误无关是的,很抱歉a是alpha,但正如你所说的,我的错误直接与分母中的Rm有关。Rg中有0,但当标绘1/Rg时没有错误。我他们中有谁解决了这个问题?