我试图解决下面的函数。我尝试使用符号解算器和F解算器。都给我惹麻烦了。第一次发帖,如果我的问题有遗漏,我会提前道歉。在
有人对如何解决这个问题有什么建议吗?我在解y,其他的都是已知变量。在
cos(y) + ((xi - tdd) / y) * sin(y)) - exp(xi - tii)
我在python中尝试了两种方法,但都不起作用。首先是:
import numpy as np
from scipy.optimize import fsolve
import sympy as sym
from sympy import *
def fi(y):
return ((cos(y) + ((xi - tdd) / y) * sin(y)) - exp(xi - tii))
y = fsolve(fi,0.01)
有了这个代码,我得到了这个错误:
AttributeError: 'ImmutableDenseNDimArray' object has no attribute 'could_extract_minus_sign'
我也试过了:
^{pr2}$得到了这个错误:
NotImplementedError: multiple generators [y, tan(y/2)] No algorithms are implemented to solve equation y*(10000000000000000*(-tan(y/2)**2 + 1)/(tan(y/2)**2 + 1) - 9849605264665270) - 300789470669454*tan(y/2)/(tan(y/2)**2 + 1)
这就是我在Matlab中解决它的方法(I和j是因为矩阵中有x值需要求解):
fi = @(y,x) (cos(y) + (((x-tdd)/y)*sin (y))) - exp((x - tii));
yi(i) = fzero(@(y) fi(y,xi(i,j)),.01);
正如我在一篇评论中已经提到的,
solve
函数并不是用来求解这些方程的。更多信息可在here找到。在关于}函数。如果用
fsolve
,问题似乎是因为您正在使用sympy的sin
、cos
和{math
模块中的函数替换它们,代码应该可以工作。在具体来说,您的代码应该如下所示:
相关问题 更多 >
编程相关推荐