matlab解三次方程,并且输出图像

matlab解三次方程,并且输出图像

一个小程序,输入三次方程,输出:

  1. 化简形式x^3+px+q=0
  2. 判别式
  3. 图像
>> x = input('[a b c d]=');
   a = x(1,1);b=x(1,2);c=x(1,3);d=x(1,4);

  p=(- b^2/(3*a) + c)/a;
  q=d/a + (2*b^3)/(27*a^3) - (b*c)/(3*a^2);
  m = q^2 /4 + p^3 /27 ;
  w=-0.5+0.5*sqrt(3)*i ;
    x1=(-q/2 + m^0.5)^(1/3) + (-q/2 - m^0.5)^(1/3) ;
    x2=w *(-q/2 + m^0.5)^(1/3) +w^2 * (-q/2 - m^0.5)^(1/3) ;
    x3=w^2 *(-q/2 + m^0.5)^(1/3) +w * (-q/2 - m^0.5)^(1/3) ;
      e=sprintf('化简后的形式为: x^3 + %g x + %g ; 判别式为: %g ',  p, q , m );
      disp(e);
  y=linspace(-5, 5);
  f=y.^3 + p*y + 1;
  plot(y,f,'LineWidth',1.5);
 x1, x2, x3

  ax=gca;                      %控制图像输出
  ax.XAxisLocation='origin';
  ax.YAxisLocation='origin';
  ax.LineWidth=1.5;
  box off;
  grid on;

让我们以 x 3 + 1 = 0 x^3+1=0 x3+1=0为例:
《matlab解三次方程,并且输出图像》
《matlab解三次方程,并且输出图像》

    原文作者:RiptidePzh
    原文地址: https://blog.csdn.net/RiptidePzh/article/details/113103570
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞