####BoundTensorNorm(tensor,order,dim) return an upper bound for the morm of tensor, which is of dimension 'order' and order 'order', where tensor is a list ####NormofTensor(sys,var,k,mroot) return an upper bound for the norm of D`(sys)^k*mroot SumofContents := proc (list, depth) ##a temp function local abstemp, i, listtemp, j; if depth = 1 then abstemp := 0; for i in list do abstemp := abstemp+abs(i) end do; return abstemp else listtemp := []; for j in list do listtemp := [op(listtemp), SumofContents(j, depth-1)] end do; return add(listtemp[i], i = 1 .. nops(listtemp)); end if end proc; BoundTensorNorm := proc (tensor, order, dim) ##a bound for the operation norm of tensor ##tensor: a list of lists as a multi-dimensional matrix ##order: order of tensor, that is the depth of the list. local i, maxtemp; maxtemp := []; for i in tensor do maxtemp := [op(maxtemp), SumofContents(i, order-1)] end do; return dim^(order-1)*sqrt(dim)*max(maxtemp) end proc; TensorofDerivative := proc (sys, var, k) local listtemp, i, j, devtemp; if k = 0 then return sys else listtemp := []; for i in sys do devtemp := []; for j in var do devtemp := [op(devtemp), diff(i, j)] end do; listtemp := [op(listtemp), TensorofDerivative(devtemp, var, k-1)] end do; return listtemp end if end proc; NormofTensor := proc (sys, var, k, mroot) ##mroot is a list showing the root local tensortemp, i; tensortemp := TensorofDerivative(sys, var, k); for i to nops(var) do tensortemp := subs(var[i] = mroot[i], tensortemp) end do; return BoundTensorNorm(tensortemp, k+1, nops(sys)) end proc;