2013-04-26 39 views
0

簡單的問題,我想要做的就是讓Solve []以一種方式工作,而不是求解單個變量(例如,Vo),它解決了表達式Vo /六。在所有情況下,這隻等於將雙方分爲Vi,因爲無論如何它都會抵消RHS,好奇是否有快速的方法去做。Mathematica - 求解方程作爲兩個變量的表達式

感謝

編輯:下面的代碼

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

請寫下一段數學代碼,我們可以抓住以確保我們理解你的問題正確 – 2013-04-26 01:45:26

+0

代碼是那裏現在,讓我知道如果你仍然無法理解我正在嘗試做什麼。謝謝! – 2013-04-26 03:00:23

回答

1

你似乎使用V1作爲Solve的佔位符以獲得VLVR。我們通過將VLVR直接放入這些方程中來擺脫V1。這意味着我們還需要將vd定義爲0 - VR

另外,我們將Av定義爲Vo/Vi

我們可以一下子就將這些方程爲Eliminate,要求其消除VoViVLVR,並且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):

In[80]:= Av =.; Av = Av /. 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][[1]]; 

In[81]:= Av 

Out[81]= (-AO R2 + RO)/(R1 + AO R1 + R2 + RO) 
相關問題