悬赏100,matlab如何求解方程组的解? 100
以下是我编写的程序:symsR1Z1T1k1t_xk1t_yk1t_zk1t_xyT2Z2a1a2a3a4a5x0=R1*cos(T1);y0=R1*sin(T1);%R...
以下是我编写的程序:
syms R1 Z1 T1 k1t_x k1t_y k1t_z k1t_xy T2 Z2 a1 a2 a3 a4 a5
x0 = R1*cos(T1); y0 = R1*sin(T1); %R1和T1已知
[TT2 ZZ2] = solve('k1t_y*((a1*Z2^4+a2*Z2^3+a3*Z2^2+a4*Z2+a5)*cos(T2)-x0)-k1t_x*((a1*Z2^4+a2*Z2^3+a3*Z2^2+a4*Z2+a5)*sin(T2)-y0)','((Z2-Z1)*k1t_xy/k1t_z)^2-((a1*Z2^4+a2*Z2^3+a3*Z2^2+a4*Z2+a5)*cos(T2)-R1*cos(T1))^2+((a1*Z2^4+a2*Z2^3+a3*Z2^2+a4*Z2+a5)*sin(T2)-R1*sin(T1))^2',T2,Z2);%利用solve函数求解两个方程组的解
但是matlab已知处于busy状态,我怀疑是程序有误。请高手指点!100分敬上! 展开
syms R1 Z1 T1 k1t_x k1t_y k1t_z k1t_xy T2 Z2 a1 a2 a3 a4 a5
x0 = R1*cos(T1); y0 = R1*sin(T1); %R1和T1已知
[TT2 ZZ2] = solve('k1t_y*((a1*Z2^4+a2*Z2^3+a3*Z2^2+a4*Z2+a5)*cos(T2)-x0)-k1t_x*((a1*Z2^4+a2*Z2^3+a3*Z2^2+a4*Z2+a5)*sin(T2)-y0)','((Z2-Z1)*k1t_xy/k1t_z)^2-((a1*Z2^4+a2*Z2^3+a3*Z2^2+a4*Z2+a5)*cos(T2)-R1*cos(T1))^2+((a1*Z2^4+a2*Z2^3+a3*Z2^2+a4*Z2+a5)*sin(T2)-R1*sin(T1))^2',T2,Z2);%利用solve函数求解两个方程组的解
但是matlab已知处于busy状态,我怀疑是程序有误。请高手指点!100分敬上! 展开
2个回答
展开全部
1、既然solve的输入参数是字符串,上面用syms定义符号变量的意义不大。
2、R2是关于z2的4次多项式,第二个方程右边的根号里面,有R2的平方项,展开后是z2的8次方,除非一些特殊情况,否则很大可能是求不出解析解的。
给出相关参数的具体值,可以尝试用fsolve求数值解。
2、R2是关于z2的4次多项式,第二个方程右边的根号里面,有R2的平方项,展开后是z2的8次方,除非一些特殊情况,否则很大可能是求不出解析解的。
给出相关参数的具体值,可以尝试用fsolve求数值解。
更多追问追答
追问
数值解应该不行,因为需要利用结果参与到一个循环体中。故目前希望得到的是解析式,不然没办法编程的,希望得到你的补充和指点!
追答
1、上面我把原因说的应该算是够清楚了吧?超过4次的代数方程是没有一般求根公式的,而你的方程展开后肯定是超过4次的,这从理论上基本上堵死了求出解析解的可能。当然,不排除个别情况下,有些特殊的高次方程可以求解析解,但一来需要方程比较特殊,二来可能需要比较敏锐的眼光和高超的技巧来发现其特殊性。恕我眼拙,至少我看不出你的这个方程组存在这种可能。
2、不知道你究竟要怎样使用得到的结果,但绝大多数用解析解可以解决的问题,用数值解应该也是没问题的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询