使用MATLAB找出以下p(x)的零点在哪?

2025-05-10 09:51:17
推荐回答(3个)
回答1:

p=[2 -16 54 -100 110 -72 26 -4];
x=0:0.001:2.1;
y=polyval(p,x);
rx=eval(solve(char(poly2sym(p))));
ry=polyval(p,rx);
plot(x,y),hold on
plot(rx,ry,'ro');hold off
axis([min(x)-0.1 max(x)+0.1 min(y)-0.1 max(y)+0.1]);
grid on

图像和解,不会冲突的

只是7次方的函数增长太快

-100到100的范围,y的取值是10^14量级的

在这么大的范围下看,0和-4根本分不出来

将x的区间减少,缩小到解附近,你就会看到差别了


方程的根是 x=1和x=2,其中x=1是6重根

其实原来的多项式可以因式分解为

y=(x-2)(x-1)^6


所以Mathematica给出了7个解都是正确的

而要求在x=0时,y的值

在matlab下可以用

polyval(p,0)

可以看到这个值是4,和图像是对应的


你要搞清楚0点是什么

要求x=0时的y值,只要将x=0代入多项式就可以了

而要求y=0时x的值,那么就是多项式求根

回答2:

你图上的坐标都用了10^14作单位了,怎么能看出来小小一个4呢。

你x=0之后就能看到y=-4了。

回答3:

你在MATLAB中解p(X)=0这个方程就行了啊