这是全部程序%文件名eg9-3-mubiao.mfunction f=eg9-3-mubiao(x)xA =67;yA=

问题描述:

这是全部程序
%文件名eg9_3_mubiao.m
function f=eg9_3_mubiao(x)
xA =67;yA=10;
xw6 =x(6)*pi/180; % 将第6个变量付给工作变量,以作弧度转换
xw7 =x(7)*pi/180; % 将第7个变量付给工作变量,以作弧度转换
xw8 =x(8)*pi/180; % 将第8个变量付给工作变量,以作弧度转换
xe = [50,48.5,42,34,29,30,34,42,48,55,56,51];
ye =[91,111,107,90,67,45,28,17,12,14,24,52];
deltafai =0:30:330;
fai =x(8) +deltafai;
fai =fai*pi/180; % 转换为弧度
landa1 =x(1)^2 +x(2)^2 -x(3)^2 +x(4)^2 -2*x(1)*x(4)*cos(fai);
landa2 =2*x(2)*sqrt(x(1)^2 +x(4)^2 -2*x(1)*x(4)*cos(fai));
lamda =acos(lamda1/lamda2);
beta1 =x(1)*sin(fai);
beta2 =x(4) -x(1)*cos(fai);
beta =atan(beta1/beta2);
delta =xw7 + lamda - beta;
xE =xA+x(1)*cos(xw7+fai) +x(5)*cos(delta+xw6); % 铰链A的初始坐标 yE =yA +x(1)*sin(xw7+fai) +x(5)*cos(delta+xw6); % 铰链A的初始坐标
a =xE -xe;a =a.*a;
b =yE -ye;b =b.*b;
for i =1:12
c = a(i) +b(i); % 求目标函数值
end
f =c; % 目标函数表达式
错误提示
>> eg9_3_mubiao(1);
Attempted to access x(6); index out of bounds because numel(x)=1.
Error in ==> eg9_3_mubiao at 4
xw6 =x(6)*pi/180; % 将第6个变量付给工作变量,以作弧度转换
1个回答 分类:数学 2014-10-31

问题解答:

我来补答
xw6 =x(6)*pi/180;       % 将第6个变量付给工作变量,以作弧度转换

x的长度是1,而这里开始取6,数组下标越界
 
 
展开全文阅读
剩余:2000