本帖最后由 FlashLL 于 -11-2 21:52 编辑
syms gama theta R1 Dr Rr t1 t2 belta alpha r
a1 = cos(gama/2 - theta) * cos(pi/4);
a2 = -sin(gama/2 - theta);
a3 = -R1 * sin(gama/2 - theta) * cos(gama/2);
a4 = cos(gama/2 - theta) * sin(pi/4);
b1 = sin(gama/2 - theta) * cos(pi/4);
b2 = cos(gama/2 - theta);
b3 = R1 * cos(gama/2 - theta) * cos(gama/2);
b4 = sin(gama/2 - theta) * sin(pi/4);
x1 = a1 * t1 + a2 * r *cos(alpha) + a3 + a4 * r * sin(alpha);
y1 = b1 * t1 + b2 * r *cos(alpha) + b3 + b4 * r * sin(alpha);
z1 = -sin(pi/4) * t1 + r * cos(pi/4) * sin(alpha);
x2 = t2;
y2 = Rr * cos(belta) + Dr;
z2 = Rr * sin(belta);
[t1,t2,alpha,belta,r] = solve(x1,x2,x1 - x2,y1 - y2,z1 - z2,'t1','t2','alpha','belta','r');
x1,y1,z1以及x2,y2,z2 分别是两个参数方程,我想将两个参数方程对应相等,利用solve函数求得解析解。
但是程序报错,错误提示如下,主要是说四个等式求解六个未知数,这个让我不明白是什么原因。
具体错误如下:
警告: 4 equations in 6 variables. New variables might be introduced.
> In C:\matlab\Ra\toolbox\symbolic\symbolic\symengine.p>symengine at 56
In mupadengine.mupadengine>mupadengine.evalin at 97
In mupadengine.mupadengine>mupadengine.feval at 150
In solve at 170
In jiefangcheng1102 at 16
错误使用 mupadengine/feval (line 157)
MuPAD error: Error: Duplicate entry in list of variables to solve for. [solve]
出错 solve (line 170)
sol = eng.feval('symobj::solvefull',eqns,vars);
出错 jiefangcheng1102 (line 16)
[t1,t2,alpha,belta,r] = solve(x1,x2,x1 - x2,y1 - y2,z1 - z2,'t1','t2','alpha','belta','r');
请问各位大佬,出错是因为我的方程无法求解还是因为程序有问题,希望您能说的详细些,我的基础不好,谢谢您的查看与回答!!