【问题标题】:Mathematica solving for a variable tMathematica 求解变量 t
【发布时间】:2013-05-25 07:35:58
【问题描述】:

我正在尝试使用 Mathematica 来求解这个方程中的 t:

Sum[Subscript[a, i]E^(-Subscript[g, i]*t), {i, 0, 100}]

这将给出类似:

E^(-t Subscript[g, 0]) Subscript[a, 0] + E^(-t Subscript[g, 1]) Subscript[a, 1] + .....

这个和等于某个值x。

我知道Subscript[a, i]Subscript[g, i] 的所有值。

我也知道x的最终求和值,但是t不知道。

如何为 Mathematica 编写输入文件,以便获得 t 的值?

非常感谢。我很感激。

【问题讨论】:

    标签: wolfram-mathematica


    【解决方案1】:

    ag 定义显式列表(因为您说您知道所有这些值),然后实际上从列表中获取值而不是使用下标,例如a[[i]]g[[i]]

    那么 Sum 表达式应该给你一个长而明确的公式,你可以将它传递给 Solve 方法,比如:

    Sum[a[[i]]/E^(-g[[i]]*t), {i, 1, 100}]
    Solve[% == x, t]
    

    我希望这会有所帮助。不幸的是,我手头没有 Mathematica 的工作副本来仔细检查语法,但我认为这应该可以帮助您入门。

    【讨论】:

    • 非常感谢。我理解,但如果值从 0 变为可能 10000 或其他值,由于值太多,数据会不会难以处理?
    • 很难说……它可能很难处理,或者 Mathematica 可能会做一些巧妙的变换并轻松解决它。 Mathematica 在这种情况下有点不透明。你需要一个精确的解决方案还是一个近似的解决方案?如果您只需要一个近似解,您也许可以使用 NSolve 而不是 Solve。同样,它是不透明的,但数值逼近方法肯定会比符号求解方法对输入表达式的复杂性更不敏感。
    • 您好!我试过了,但结果给出了条件表达式,似乎 Mathematica 甚至无法产生近似结果。有没有办法让我可以为程序提供一个像 [1,10] 这样的参数,以便mathematica 计算该范围内的值并查看该范围内的任何数字是否适合 t 的值?非常感谢您的帮助。
    • 嗯,您可以尝试在对求解函数的调用中包含一个额外的参数,例如“1
    猜你喜欢
    • 2011-01-07
    • 2014-02-11
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多