查看: 134|回复: 3|关注: 0

[已解决] 方程有多个解时,vpasolve不能返回范围内的所有值

[复制链接]

新手

7 麦片

财富积分


050


1

主题

7

帖子

0

最佳答案
求助各位大神:
    程序如下,x和y均可求得其中一个解,但将vpasolve的搜索范围放大,即z的解,只能返回y的解,而不能同时返回两个值,
    不是说vpasolve可以返回全部解么,~~~求助这种情况应该怎么办~
    64位R2014a
代码如下:

syms beta

n0=1;eps0=n0^2;
n2=1.45;eps2=n2^2;  
n1=3.138;eps1=n1.^2;
lamda=0.538;
k0=2*pi/lamda;

k1=(sqrt(k0^2*eps1-beta^2));
p0=(sqrt(beta^2-k0^2*eps0));
p2=(sqrt(beta^2-k0^2*eps2));
M1=([cos(k1*h1) -eps1*sin(k1*h1)/k1;k1*sin(k1*h1)/eps1 cos(k1*h1)]);
%%
x=vpasolve([-p0/eps0 1]*M1*[1;-p2/eps2]==0,beta, [15 20]);
y=vpasolve([-p0/eps0 1]*M1*[1;-p2/eps2]==0,beta, [-35 0]);
z=vpasolve([-p0/eps0 1]*M1*[1;-p2/eps2]==0,beta, [-35 20]);



论坛优秀回答者

权威

8043 麦片

财富积分



5

主题

9478

帖子

1828

最佳答案
  • 关注者: 417
发表于 7 天前 | 显示全部楼层 |此回复为最佳答案
对于多项式才可以返回全部解,比如vpasolve(3*x^3+8*x^2-20)

新手

7 麦片

财富积分


050


1

主题

7

帖子

0

最佳答案
 楼主| 发表于 7 天前 | 显示全部楼层
对于这样的有多个解的方程,要怎样才能求得全部解呢?

新手

7 麦片

财富积分


050


1

主题

7

帖子

0

最佳答案
 楼主| 发表于 7 天前 | 显示全部楼层
王绮霞 发表于 2018-9-13 15:22
对于这样的有多个解的方程,要怎样才能求得全部解呢?

已解决,安利下帖
http://www.ilovematlab.cn/forum. ... d=854642&page=1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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