
X^3-24X^2+24=0这个方程怎么解
三次方程没有解析解,只能通过数值逼近求其数值解。
通过分析(用函数的单调性,如图也可以)可知y=x^3-24*x^2+24=0只有一个解。
下面是二分法求解的matlab程序:
在matlab中保存为:bisection.m
function rtn=bisection(fx,xa,xb,n,delta)
% 二分法解方程
% fx是由方程转化的关于x的函数,有fx=0。
% xa 解区间上限
% xb 解区间下限
%解区间人为判断输入
% n 最多循环步数,防止死循环。
%delta 为允许误差
x=xa;fa=eval(fx);
x=xb;fb=eval(fx);
disp(' [ n xa xb xc fc ]');
for i=1:n
xc=(xa+xb)/2;x=xc;fc=eval(fx);
X=[i,xa,xb,xc,fc];
disp(X),
if fc*fa<0
xb=xc;
else xa=xc;
end
if (xb-xa)<delta,break,end
end
例子:用二分法求方程x^3-24*x^2+24=0在区间[-10,10]内的一个实根,要求两次近似值之间的误差不超过10^(-6)。
>> f='x^3-24*x^2+24';
>> bisection(f,-10,10,30,10^(-6))
[ n xa xb xc fc ]
1 -10 10 0 24
2 -10 0 -5 -701
3.0000 -5.0000 0 -2.5000 -141.6250
4.0000 -2.5000 0 -1.2500 -15.4531
5.0000 -1.2500 0 -0.6250 14.3809
6.0000 -1.2500 -0.6250 -0.9375 2.0823
7.0000 -1.2500 -0.9375 -1.0938 -6.0194
8.0000 -1.0938 -0.9375 -1.0156 -1.8035
9.0000 -1.0156 -0.9375 -0.9766 0.1805
10.0000 -1.0156 -0.9766 -0.9961 -0.8012
11.0000 -0.9961 -0.9766 -0.9863 -0.3078
12.0000 -0.9863 -0.9766 -0.9814 -0.0630
13.0000 -0.9814 -0.9766 -0.9790 0.0589
14.0000 -0.9814 -0.9790 -0.9802 -0.0020
15.0000 -0.9802 -0.9790 -0.9796 0.0285
16.0000 -0.9802 -0.9796 -0.9799 0.0132
17.0000 -0.9802 -0.9799 -0.9801 0.0056
18.0000 -0.9802 -0.9801 -0.9801 0.0018
19.0000 -0.9802 -0.9801 -0.9802 -0.0001
20.0000 -0.9802 -0.9801 -0.9802 0.0009
21.0000 -0.9802 -0.9802 -0.9802 0.0004
22.0000 -0.9802 -0.9802 -0.9802 0.0001
23.0000 -0.9802 -0.9802 -0.9802 0.0000
24.0000 -0.9802 -0.9802 -0.9802 -0.0000
25.0000 -0.9802 -0.9802 -0.9802 -0.0000
从结果可以看出,
这个解为:-0.9802
x^3-24x^2=-24
-24+24x^2=x^3
两边除以X^2
-24/(x^2)+24=X
-24/(x^2)=X-24
右边乘以X^2
-24/(x^2)=(X^3-24^2)/x^2
所以:-24=x^3-24X^2
-24+24X^2=x^3
-24(1-X^2)=x^3
X^3= 24(X^2 - 1)
可以做图,取交点就可以了