作业帮 > 综合 > 作业

将下面公式通过matlab求解

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/09 10:13:56
将下面公式通过matlab求解


其中,可以给定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语法很不难,主要要习惯矩阵操作。