将下面公式通过matlab求解
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/09 10:13:56
将下面公式通过matlab求解
其中,可以给定Theta的角度为0-2pi之间,每一角度取个值,二维画出图来
其中,可以给定Theta的角度为0-2pi之间,每一角度取个值,二维画出图来
通过fminsearch求出近似
f = @(theta,alpha,beta,phi,gamma)norm([3645.21 1047.64 4113.65 -1047.64]' - ...
[cos(theta) cos(gamma) -sin(alpha) -cos(phi);
sin(theta) -sin(gamma) cos(alpha) -sin(phi);
cos(theta) cos(gamma) -sin(beta) cos(phi);
sin(theta) -sin(gamma) -cos(beta) sin(phi)] * [400 3900 1100 2400]');
xy = [];
x = zeros(4,1);
for theta = 0:.1:2*pi
x = fminsearch(@(x)f(theta,x(1),x(2),x(3),x(4)),x); % 以上一次的解作为这一次初始值
xy = [xy; 400*cos(theta)+3900*cos(x(4)) 400*sin(theta)-3900*sin(x(4))];
end
plot(xy(:,1),xy(:,2),'o-');
结果如示:
PS:下次编程类问题选择类别为编程吧,因为要贴代码
再问: 恩求解的很好 但是 我仿真出来的 觉得这个曲线应该是以3900为中心的 0为中心的 没有这么偏得斜率 你看呢 有没有这方面的资料 我也学学 谢啦
再答: 我只是解这编程问题,实际问题我并不了解。你是指不应该倾斜这么多吗?对这问题的解没仔细研究,你自己找找你所研究课题方面的paper
再问: 好的 有没有编程方面的书 我想学一学matlab 自己有一点基础
再答: 我没现成的教程之类,网上资料很多,此外MATLAB自带的help也很重要。MATLAB语法很不难,主要要习惯矩阵操作。
f = @(theta,alpha,beta,phi,gamma)norm([3645.21 1047.64 4113.65 -1047.64]' - ...
[cos(theta) cos(gamma) -sin(alpha) -cos(phi);
sin(theta) -sin(gamma) cos(alpha) -sin(phi);
cos(theta) cos(gamma) -sin(beta) cos(phi);
sin(theta) -sin(gamma) -cos(beta) sin(phi)] * [400 3900 1100 2400]');
xy = [];
x = zeros(4,1);
for theta = 0:.1:2*pi
x = fminsearch(@(x)f(theta,x(1),x(2),x(3),x(4)),x); % 以上一次的解作为这一次初始值
xy = [xy; 400*cos(theta)+3900*cos(x(4)) 400*sin(theta)-3900*sin(x(4))];
end
plot(xy(:,1),xy(:,2),'o-');
结果如示:
PS:下次编程类问题选择类别为编程吧,因为要贴代码
再问: 恩求解的很好 但是 我仿真出来的 觉得这个曲线应该是以3900为中心的 0为中心的 没有这么偏得斜率 你看呢 有没有这方面的资料 我也学学 谢啦
再答: 我只是解这编程问题,实际问题我并不了解。你是指不应该倾斜这么多吗?对这问题的解没仔细研究,你自己找找你所研究课题方面的paper
再问: 好的 有没有编程方面的书 我想学一学matlab 自己有一点基础
再答: 我没现成的教程之类,网上资料很多,此外MATLAB自带的help也很重要。MATLAB语法很不难,主要要习惯矩阵操作。