2013-01-21 55 views
0

如果我寫在楓葉楓情節

AC := Amp*sin(2*Pi/T*t); 

然後我能夠看到代數方式表達。但我無法將其繪製出來,因爲T未設置(當然,針對t繪圖)。

如果我寫

T := 100e-6; 
AC := Amp*sin(2*Pi/T*t); 
plot(AC, t=0..1e-3); 

然後我可以繪製它,但表達被示出具有電話號碼,但不符號。

我的問題是以下幾點: 如果有一種方法可以很好地結合這兩種願望?所以

  1. 有變量聲明,
  2. 有書面表達中的符號
  3. 把它繪製。

我知道可以先寫表達式然後添加它的參數。它適用於小型工作表。但是如果我有5-8頁的工作並想在文檔的開頭本地化變量(而不是到處尋找它們),該怎麼辦?

謝謝!

回答

1

如果您將參數方程式放入列表中(早先在工作表中指定),那麼只要您想用這些值實例化符號表達式,就可以使用所謂的雙參數eval

例如,在工作表的頂部,你可以有這樣的事情,

params:=[T=100e-6,Amp=33.0,parB=2.3,parC=-0.9]; 

再後來仍然可以創建一個包含未分配的符號TAmp

AC := Amp*sin(2*Pi/T*t); 

             2 Pi t 
          AC := Amp sin(------) 
              T 
新表情

然後,只要你想使用這些特定的值,

plot(eval(AC,params), t=0..1e-3); 

最後一個命令成功,因爲2個參數的eval呼叫動作,鏈接纔可如此,

eval(AC,params); 

         33.0 sin(20000.00000 Pi t) 

即使之後plot通話時,您仍然可以使用未分配T等,在新的符號表達式。

希望有所幫助。

+0

非常感謝,這確實有效!然而,那時我無法創建「封裝」參數:params:= [T = 0.100e-3,ω= 2 * Pi/T,Amp = -.9]; AC:= Amp * sin(ω* t);繪圖(eval(AC,params),t = 0 ... 0.1e-2)。這沒有奏效。有任何想法嗎? (對不起,我不知道如何在註釋中進行格式化) – Andrew

+1

可以在列表中使用帶*方程式*的子程序,並依賴於defns的小心順序,或使用雙層eval。例如。號碼:= [T = .1e-3,A = - 9。];ν:= [OM =π/ T]; AC:= A * SIN(OM * T);圖(EVAL(EVAL(AC,V )中,p),T = 0..0。001); (op(p),AC),其中p(t)= 0 [0,1] T = 0..0.001); – acer