尝试使用CoCalc(sage)将解绘制为需要模数的函数

时间:2018-11-30 22:04:55

标签: python sage

我有以下代码和错误消息。我正在做的事情似乎弄乱了hb函数中的%函数。我不太确定该如何解决。有什么想法吗?

def h(n):
    if (n % 4 >= 0) and (n % 4 < 1):
            k = 1
    else:
        k = 0
    return k

def hb(n):
    if (((n/4) % 2) >= 0) and (((n/4) % 2) < 1):
        k = -1*h(n)
    else:
        k = h(n)
    return k

def dalembert(y,t):
    x = 0.5*hb(y-t)+0.5*hb(y+t) 
    return x 

import numpy as np

box1 = np.array([1,2,6,10,20])

for i in range(len(box1)):
    g=Graphics()
    g += plot(dalembert(x,box1[i]), (x, 0, 4), color='blue')
    g.show()

第18-21行出现错误 追溯(最近一次通话):   在执行中的文件“ /cocalc/lib/python2.7/site-packages/smc_sagews/sage_server.py”,行1188     flags = compile_flags)在本地名称空间中   文件“”,第3行,在   文件“”,第2行,在dalembert   文件“”,第2行,在hb中   在sage.structure.element.Element。 mod 中的文件“ sage / structure / element.pyx”,行1925(build / cythonized / sage / structure / element.c:13956)     return coercion_model.bin_op(left,right,mod)   sage.structure.coerce.CoercionModel_cache_maps.bin_op(build / cythonized / sage / structure / coerce.c:9827)中的文件“ sage / structure / coerce.pyx”,第1182行     返回PyObject_CallObject(op,xy)   在sage.structure.element.Element。 mod 中的“ sage / structure / element.pyx”文件,第1923行(build / cythonized / sage / structure / element.c:13921)     返回(左)。 mod (右)   在sage.structure.element.Element。 mod 中的文件“ sage / structure / element.pyx”,行1958(build / cythonized / sage / structure / element.c:14242)     提高bin_op_exception('%',self,other) TypeError:%不支持的操作数父级:“符号环”和“符号环”

1 个答案:

答案 0 :(得分:0)

尝试更换 do { let dic = try JSONSerialization.jsonObject(with: str.data(using: .utf8)!, options: []) as! [String : Any] if let outPutArr = dic["output"] as? [String] { if let first = outPutArr.first { let dic = try JSONSerialization.jsonObject(with: (first as! String).data(using: .utf8)!, options: []) as! [String : Bool] print(dic["cameraIsOnboarded"]) } } } catch { print(error) } 类似 g += plot(dalembert(x,box1[i]), (x, 0, 4), color='blue')

问题在于,当您在代码中编写 function d0(y): return dalembert(y,box1[i]); g += plot(d0, (x, 0, 4), color='blue') 时,甚至在开始在绘图中使用它之前都会先对其进行评估,并且使用xa符号对其进行评估,这会破坏其他内容...