【问题标题】:Maple plot of algebraic expression代数表达式的枫图
【发布时间】:2013-01-21 10:06:13
【问题描述】:

如果我用 Maple 写作

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 页的工作,并且想要本地化文档开头的变量(而不是到处寻找它们),该怎么办?

谢谢!

【问题讨论】:

    标签: plot symbols numeric maple symbolic-math


    【解决方案1】:

    如果您将参数方程放在一个列表中(在工作表的前面分配),那么您可以使用所谓的 2-argument 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-argument eval 调用就像这样,

    eval(AC,params);
    
                           33.0 sin(20000.00000 Pi t)
    

    即使在plot 调用之后,您仍然可以在新的符号表达式中使用未分配的T 等。

    希望对您有所帮助。

    【讨论】:

    • 非常感谢,这确实有效!但是,我当时无法创建“封装”参数: params := [T = 0.100e-3, omega = 2*Pi/T, Amp = -.9]; AC := Ampsin(omegat);情节(评估(AC,参数),t = 0 .. 0.1e-2)。这没有用。有任何想法吗? (抱歉,我不知道如何在 cmets 中进行格式化)
    • 要么在列表中使用带有方程not 的subs 并依赖仔细的defns 顺序,要么使用双层的eval。例如。 p:=[T=.1e-3,A=-.9];v:=[om=Pi/T];AC:=Asin(omt);plot(eval(评估(AC,v),p),t = 0..0.001);或 p:=[om=Pi/T,T=.1e-3,A=-.9];AC:=Asin(omt);plot(subs(op(p) ,AC),t=0..0.001);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多