【问题标题】:SetDelayed::Write ... is protected in module for recursively declared functionSetDelayed::Write ... 在递归声明函数的模块中受到保护
【发布时间】:2015-04-24 04:40:01
【问题描述】:

以下代码导致 SetDelayed::write: "Beta[row_Integer,col_Integer] 中的标记 Beta 受保护。"由 Mathematica 输出。 我看不出原因。

我选择的函数定义是否适合 'b' 的三种不同且递归声明的情况,还是错误的原因?

Beta[row_Integer, col_Integer] := Module[
    {l1, l2},
    l1 = -1;
    l2 = 2;

    b[m_, r_] := Which[m == 0 && r == 0, 1,
                       m == 0 && r != 0, Sum[a[[k]]*Sum[b[0, s]*k^(r - s)*Binomial[r, s], {s, 0, r - 1}],{k, l1,l2}]/(2^(r + 1) - 2)
                       m != 0 && r != 0, Sum[Binomial[r, i]*m^i*b[0, r - i], {i, 0, r}]];
    b[row,col]
];

【问题讨论】:

    标签: recursion wolfram-mathematica mathematical-expressions


    【解决方案1】:

    有一个名为 Beta 的内置函数。

    尝试调用你的函数 Bet 看看它是否有效。

    【讨论】:

    • 加一。添加,最好用小写开始所有你自己的符号以避免冲突
    猜你喜欢
    • 2014-09-28
    • 2011-03-23
    • 2015-12-29
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    相关资源
    最近更新 更多