作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在为我的工程学院做一个项目。我们必须创建一个数学框架,使我们能够理解从两个输入角度到一个输出点的转换。我们正在研究的机器人是一个 5 bar 并联运动机器人。
我们找到了方程,我们设法找到了轨迹。
我们现在有了非常好的误差方程,因为对于空间中的给定点,我们可以找到实现最小误差所需的角度。
这就是误差方程。现在我们正在努力寻找一种方法来计算所有角度,使方程为零。
我想将两个变量的图形从 0 可视化到 2*pi。但是在 Octave 和 Matlab 上,我总是得到一个错误的矩阵,使其无法使用。现在我们只是不知道我们能做什么?
有人对我有什么建议吗?
PS:这是我使用的代码:
clear
X = 0.5;
Y = 0.5;
L = 1.0;
E = 1.0;
discret = 0.06;
x = [0:discret:2*pi];
y = [0:discret:2*pi];
[xx, yy] = meshgrid (x, y);
Cx = cos(xx)
Sx = sin(xx)
Cy = cos(yy)
Sy = sin(yy)
D = (((-2*(L*Cx - E)+(2*(E - L*Cy))))/((-2*(L)*Sy)+(2*(L)*Sx)));
K = ((-E+L*Cx)^2 - (E-L*Cy)^2 - (L*Sy)^2 - (L*Sx)^2)/((-2*(L)*Sy)+(2*(L)*Sx));
z = abs(Y - X*D - K);
mesh(x, y, z)
meshc(xx,yy,z)
xlabel ("theta1");
ylabel ("theta2");
zlabel ("Er(theta1,theta2)");
grid on
最佳答案
关于精度的一点暗示您正在执行矩阵除法,实际上从您的方程来看,您似乎只需要正常的数组除法(即元素/矢量化运算,而不是矩阵运算)。
只需更换任何 /
或 ^
与 ./
, .^
等视情况而定。
此外,您的方程可以显着简化,使您的代码更清晰并避免由于易读性而导致的错误:
clear
X = 0.5; Y = 0.5; L = 1.0; E = 1.0; stepsize = 0.06;
x = [0 : stepsize : 2*pi]; y = [0 : stepsize : 2*pi];
[xx, yy] = meshgrid (x, y);
Cx = cos(xx); Sx = sin(xx); Cy = cos(yy); Sy = sin(yy);
D = ( Cy + Cx - 2 .* E/L ) ./ ( Sy - Sx );
K = 0.5 .* ( Sy.^2 + Sx.^2 + (Cy - E/L).^2 - (Cx - E/L).^2 ) ./ (Sy-Sx);
z = abs(Y - X .* D - K);
surf(x, y, z, 'edgecolor', 'none', 'facecolor', 'interp' )
set( gcf, 'colormap', hot(256), 'color', 'k' )
set( gca, 'gridcolormode', 'manual', 'gridlinestyle', '-', 'gridcolor', 'w', 'gridalpha', 0.1, 'fontsize', 16, 'color', [0.2, 0.2, 0.2], 'xcolor', [0.8,0.8,0.8], 'ycolor', [0.8,0.8,0.8], 'zcolor', [0.8,0.8,0.8] )
set( get( gca, 'xlabel' ), 'string', '\theta_1', 'fontsize', 36 );
set( get( gca, 'ylabel' ), 'string', '\theta_2', 'fontsize', 36 );
set( get( gca, 'zlabel' ), 'string', {'Er( \theta_1, \theta_2 )',''}, 'fontsize', 36 );
view( 15, 30 );
关于matlab - 如何找到多变量非线性方程的数值近似值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67184778/
目标 给定一组点,我试图找出满足所提供所有点的线性方程的系数。 例如,如果我想求线性方程 (ax + by + c = z): 3x + 2y + 2 = z 我至少需要三个三维点: (2, 2, 1
我是一名优秀的程序员,十分优秀!