简单的问题,我想要做的就是让Solve []以一种方式工作,而不是求解单个变量(例如Vo),它解决了表达式Vo / Vi。在所有情况下,这只等于将双方划分为Vi,因为它无论如何都会在RHS上取消,好奇是否有快速的方法可以做到。
由于
编辑:这是代码
vd = 0 - V1;
VL = Solve[(V1 - Vi)/R1 + (V1 - Vo)/R2 == 0, V1][[All, 1, 2]][[1]];
VR = Solve[(Vo - V1)/R2 + (Vo - (AO*vd))/RO == 0, V1][[All, 1, 2]][[1]];
Av = Solve[VL == VR, Vo][[All, 1, 2]][[1]];
Av = Av/Vi //I add this to remove the Vi
基本上我希望它解决Vo / Vi,自动从RHS中删除Vi ......
答案 0 :(得分:1)
您似乎在V1
中使用Solve
作为占位符来获取VL
和VR
。让我们通过将V1
和VL
直接放入这些方程中来摆脱VR
。这意味着我们还需要将vd
定义为0 - VR
。
另外,我们将Av
定义为Vo/Vi
。
我们可以将所有等式填充到Eliminate
中,要求它消除Vo
,Vi
,VL
,VR
和{{1} }:
vd
这与我们想要的非常接近,但In[72]:= Eliminate[
vd == 0 - VR
&& (VL - Vi)/R1 + (VL - Vo)/R2 == 0
&& (Vo - VR)/R2 + (Vo - (AO*vd))/RO == 0
&& VL == VR
&& Av == Vo/Vi,
{Vo, Vi, vd, VL, VR}]
Out[72]= Av (1 + AO + R2/R1 + RO/R1) == (-AO R2 + RO)/R1 && R1 != 0 &&
R2 != 0 && RO != 0
并没有完全解决,所以我们也这样做:
Av
如果您想要实际定义符号In[73]:= Solve[
Eliminate[
vd == 0 - VR
&& (VL - Vi)/R1 + (VL - Vo)/R2 == 0
&& (Vo - VR)/R2 + (Vo - (AO*vd))/RO == 0
&& VL == VR
&& Av == Vo/Vi,
{Vo, Vi, vd, VL, VR}],
Av]
Out[73]= {{Av -> (-AO R2 + RO)/(R1 + AO R1 + R2 + RO)}}
,我们可以使用Av
(/.
)执行此操作:
ReplaceAll