用matlab求根区间,matlab如何求解给定区间内非线性方程的多解的问题

L1=3;L2=3*(2^0.5);L3=3;

gamma=pi/4;

P1=5;P2=5;P3=3;

X1=5;Y1=0;

X2=0;Y2=6;

syms theta A2 B2 A3 B3 N1 N2 D f;

A2=L3*cos(theta)-X1;

B2=L3*sin(theta);

A3=L2*(cos(theta)*cos(gamma)-sin(theta)*sin(gamma))-X2;

B3=L2*(cos(theta)*sin(gamma)+sin(theta)*cos(gamma))-Y2;

N1=(B3*(P2^2-P1^2-A2^2-B2^2)-B2*(P3^2-P1^2-A3^2-B3^2));

N2=(-A3*(P2^2-P1^2-A2^2-B2^2)+A2*(P3^2-P1^2-A3^2-B3^2));

D=2*(A2*B3-B2*A3);

%   解方程

f=(N1^2+N2^2-(P1^2)*D^2);

% theta=vpasolve(f,theta,[-pi,pi]);

% theta1=double(theta);

% theta2=double(theta);

%  绘制f(theta)的函数图像

figure(1)

Q=-pi:0.0001:pi;

f=((L2.*(cos(Q).*sin(gamma)+sin(Q).*cos(gamma))-Y2).*(P2.^2-P1.^2-(L3.*cos(Q)-X1).^2-(L3.*sin(Q)).^2)-(L3.*sin(Q)).*(P3.^2-P1.^2-(L2.*(cos(Q).*cos(gamma)-sin(Q).*sin(gamma))-X2).^2-(L2.*(cos(Q).*sin(gamma)+sin(Q).*cos(gamma))-Y2).^2)).^2+(-(L2.*(cos(Q).*cos(gamma)-sin(Q).*sin(gamma))-X2).*(P2.^2-P1.^2-(L3.*cos(Q)-X1).^2-(L3.*sin(Q)).^2)+(L3.*cos(Q)-X1).*(P3.^2-P1.^2-(L2.*(cos(Q).*cos(gamma)-sin(Q).*sin(gamma))-X2).^2-(L2.*(cos(Q).*sin(gamma)+sin(Q).*cos(gamma))-Y2).^2)).^2-P1.^2.*(2.*((L3.*cos(Q)-X1).*(L2.*(cos(Q).*sin(gamma)+sin(Q).*cos(gamma))-Y2)-(L3.*sin(Q)).*(L2.*(cos(Q).*cos(gamma)-sin(Q).*sin(gamma))-X2))).^2;

plot(Q,f);

plot(Q,f,'Linewidth',2);

grid on

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值