简体   繁体   English

在MATLAB中求解符号方程

[英]Solving symbolic equation in matlab

I am trying to solve a symbolic equation of the form 我正在尝试求解以下形式的符号方程

D = lamda^12/339288145381785600000 + lamda^10/18124366740480000 +
    lamda^8/7846046208000 + lamda^6/523908000 + lamda^4/25200

where lamda is declared as sym . 其中lamda被声明为sym The output I get is not in a readable form. 我得到的输出不是可读形式。 Even vpa is not giving me the answer in readable form. 甚至vpa也不以可读的形式给我答案。 what can be the solution? 有什么解决方案?

First we define the symbolic function: 首先我们定义符号函数:

syms x
f(x) = x^12/339288145381785600000 + x^10/18124366740480000 + ...
    x^8/7846046208000 + x^6/523908000 + x^4/25200;
ezplot(f)

方程function_plot

Next we find the roots (by solving it numerically). 接下来,我们找到根(通过数值求解)。 You could also use the vpasolve MATLAB function: 您还可以使用vpasolve MATLAB函数:

sol = feval(symengine, 'numeric::solve', f==0, x)

There is 1 real solution and 8 complex ones: 有1个实际解决方案和8个复杂的解决方案:

>> sol(:)
sol =
   79.624598247213536847657202795915 - 49.037140566365604310129811798328*i
   79.624598247213536847657202795915 + 49.037140566365604310129811798328*i
                                       118.88396448746822093664197370373*i
                                      -118.88396448746822093664197370373*i
                                      -111.61305465738189638915837157361*i
                                       111.61305465738189638915837157361*i
                                                                         0
 - 79.624598247213536847657202795915 - 49.037140566365604310129811798328*i
 - 79.624598247213536847657202795915 + 49.037140566365604310129811798328*i

Finally we plot the roots: 最后,我们绘制根源:

s = double(sol);
plot(real(s), imag(s), 'r.', 'MarkerSize',25)
axis square; axis([-100 100 -150 150]); box on
line(xlim(), [0 0], 'Color','k', 'LineStyle',':')
line([0 0], ylim(), 'Color','k', 'LineStyle',':')
xlabel('Re(x)'), ylabel('Im(x)'), title('Roots in Complex Plane')

roots_complex_plane

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM