matlab非线性方程组
我的代码是:matlab非线性方程组,matlab,equation,differentiation,Matlab,Equation,Differentiation,我的代码是: function F=root4d(x) W1 = 0.928*(6-0.928)/tan(x(3))*20; W2 = (6-0.928)*((6-0.928)/(tan(x(3))))/2*20; F(1)= x(4)*cos(10*pi/180)+x(1)*cos(x(3))-x(2)*sin(x(3)); F(2)= x(4)*sin(10*pi/180)+x(1)*sin(x(3))+x(2)*cos(x(3))-10*(6-0.928)/tan(x(3))-W1-W2
function F=root4d(x)
W1 = 0.928*(6-0.928)/tan(x(3))*20;
W2 = (6-0.928)*((6-0.928)/(tan(x(3))))/2*20;
F(1)= x(4)*cos(10*pi/180)+x(1)*cos(x(3))-x(2)*sin(x(3));
F(2)= x(4)*sin(10*pi/180)+x(1)*sin(x(3))+x(2)*cos(x(3))-10*(6-0.928)/tan(x(3))-W1-W2;
F(3)= x(1)-x(2)*tan(20*pi/180)-10*(6-0.928)/sin(x(3));
F(4)= diff(x(4),x(3));
而且:
fun = @root4d;
x0 =[0,0,0,0];
x=fsolve(fun,x0)
但它不起作用。
我得到:
我能做些什么来解我的非线性方程组呢?嗯,还没有测试过,但它应该不是
fun=@(x)root4d(x)
?嘿,谢谢。我对它进行了测试,我一直遇到同样的问题。如果你做root4d([0,0,0,0])
(即root4d(x0)
)F(4)=diff(x(4),x(3))代码>这就是问题所在。你这是什么意思?第二个输入是diff
的“顺序”,但这个数字当然不能是随机的。在本例中,您尝试将0
作为第一个值。
Error in solver (line 3)
x=fsolve(fun,x0)
Caused by:
Failure in initial objective function evaluation. FSOLVE cannot continue.