我在matlab上有一个程序,但我想用python进行转换,我的matlab代码是:function [f]=equation1(x)
%options = optimoptions('fsolve','TolFun',1.1e-20,'TolX',1.1e-20,'maxIter',Inf,'MaxFunEvals',Inf);
c = 330 ;%speed of sound meters per second
% unknown variable :
% r1 => x(1)
% theta => x(2)
time2 = 0.455; % Microphone 1 to Microphone 2 time delay
time3 = 0.606; % Microphone 1 to Microphone 3 time delay
% gives :
r2 = 150 %time2*c;
r3 = 200 %time3*c;
r4 = 499.1; % Distance from Microphone 2 to Microphone 3
r5 = 1267.9;% Distance from Microphone 1 to Microphone 3
phi = 16.177; % Angle between Microphone 1 and Microphone 2 measured from Microphone 3
%
f(1)= (x(1) + r2)^2- (x(1)+r3)^2 -r4^2 +2*(x(1)+r3)*r4*cosd(x(2));
f(2)= x(1)^2 - (x(1)+r3)^2 - r5^2 + 2*(x(1)+r3)*r5*cosd(x(2)-phi);
我用[x,feval]=fsolve(@equation1,[10010])运行此代码;他返回正确的值(1620.7076.4)
但是在python上我做了这个程序
^{pr2}$
但是当我运行时,我有一个错误值:
迭代没有取得良好的进展
最近五次雅可比评价的改进。
警告。警告(消息,运行时警告)
(-167792.68841940007,-1096453.7938717711)
有人说为什么它在python上不起作用?在
EDIT=>;我更改python代码以解决degree问题。但是我没有很好的值(python返回-4263.77780373-272.257364385,与matlab的值相差甚远)。在