MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 267|回复: 8|关注: 0

[已答复] 用matlab求解三角函数方程组

[复制链接]

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
发表于 6 天前 | 显示全部楼层 |阅读模式
问题如图,求大神指点
无标题.png

论坛优秀回答者

中级

618 麦片

财富积分


5001500


0

主题

1742

帖子

137

最佳答案
  • 关注者: 73
发表于 6 天前 | 显示全部楼层
MATLAB初学者必读
theat3,theat4,theat5,theat6应该给出范围限制吧,否则三角函数会是多解。

新手

14 麦片

财富积分


050


0

主题

30

帖子

2

最佳答案
  • 关注者: 1
发表于 6 天前 | 显示全部楼层
可以通过fsolve求解吧
function test6y17()
global sita2
dbstop if error
options=optimset('display','off');
Sita2=0:10:360;
Sita3t6=zeros(length(Sita2),4);
for i=1:length(Sita2)
    sita2=Sita2(i);
    Sita3t6(i,:)=fsolve(@myfun,[1,1,1,1],options);
end
figure('color','white')
for j=1:4
    subplot(2,2,j)
    plot(Sita2,Sita3t6(:,j));
    xlabel('{\theta}2'),ylabel(['{\theta}',num2str(2+j)])
end


function F=myfun(x)
global sita2
F(1)=100*cosd(sita2)+1250*cosd(x(1))-940-1000*cosd(x(2));
F(2)=100*sind(sita2)+1250*sind(x(1))-1000-1000*sind(x(2));
F(3)=1000+1960*cosd(4)+1150*cosd(x(3))-100*cosd(sita2)-1250*cosd(x(1));
F(4)=850+1960*sind(x(4))+1150*sind(x(3))-100*sind(sita2)-1250*sind(x(3));

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 5 天前 | 显示全部楼层
dlh2711703 发表于 2017-6-17 22:04
可以通过fsolve求解吧
function test6y17()
global sita2

为什么运行出来的结果是这样的?
2.png

新手

14 麦片

财富积分


050


0

主题

30

帖子

2

最佳答案
  • 关注者: 1
发表于 5 天前 | 显示全部楼层
这个其实是因为θ5求解得到的是常数180°,而之所以在图像里有偏差是因为fsolve函数求的数值解有误差造成的。可以把坐标轴范围调大,比如ylim函数

新手

5 麦片

财富积分


050


0

主题

3

帖子

0

最佳答案
发表于 5 天前 | 显示全部楼层
dlh2711703 发表于 2017-6-17 22:04
可以通过fsolve求解吧
function test6y17()
global sita2

谢谢楼主

新手

15 麦片

财富积分


050


10

主题

48

帖子

0

最佳答案
发表于 3 天前 | 显示全部楼层
dlh2711703 发表于 2017-6-17 22:04
可以通过fsolve求解吧
function test6y17()
global sita2

为什么m文件中出现的函数都成了cosd(sita2),cosd(x(1)),cosd(x(2)),这个d哪来的,没看懂

新手

14 麦片

财富积分


050


0

主题

30

帖子

2

最佳答案
  • 关注者: 1
发表于 3 天前 | 显示全部楼层
binbin08013 发表于 2017-6-20 08:41
为什么m文件中出现的函数都成了cosd(sita2),cosd(x(1)),cosd(x(2)),这个d哪来的,没看懂 ...

cos函数对应的是弧度单位,而cosd对应的单位是角度

新手

15 麦片

财富积分


050


10

主题

48

帖子

0

最佳答案
发表于 3 天前 | 显示全部楼层
dlh2711703 发表于 2017-6-20 11:28
cos函数对应的是弧度单位,而cosd对应的单位是角度

谢谢,真尴尬:L
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

联系我们|版权保护|小黑屋|Archiver|手机版|MATLAB中文论坛 ( 苏ICP备08100737号

GMT+8, 2017-6-23 21:41 , Processed in 0.311991 second(s), 87 queries , XCache On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表