gpt4 book ai didi

matlab - 如何找到多变量非线性方程的数值近似值?

转载 作者:行者123 更新时间:2023-12-04 07:46:12 25 4
gpt4 key购买 nike

我一直在为我的工程学院做一个项目。我们必须创建一个数学框架,使我们能够理解从两个输入角度到一个输出点的转换。我们正在研究的机器人是一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com