有谁解过立方方程x3+ax2+bx+c=0吗
x3+ax2+bx+c=0
其中x3为x的立方,x2为x的平方,求解x,有人做过吗。
谢谢,在线等
问题点数:0、回复次数:11Top
1 楼orchidbing(米饼)回复于 2005-04-04 17:35:40 得分 0
如果有源程序的,请给我源程序,谢谢。Top
2 楼oystergj(傻气疼疼)回复于 2005-04-04 17:42:41 得分 0
回来再顶~
Delphi没有提供开立方根的函数,但提供了对数函数,所以
var
Rel:real
showmessage(floatToStr(Power(Rel,1/3)));
Top
3 楼jinjazz(近身剪)回复于 2005-04-04 17:48:12 得分 0
abc都确定的情况下用二分法解该方程Top
4 楼orchidbing(米饼)回复于 2005-04-04 17:49:56 得分 0
给个源程序研究一下,急用Top
5 楼HeLiang7(阿亮)回复于 2005-04-04 17:58:40 得分 0
三次方程我记得有解的公式,楼主可以先把公式查到,然后一切都好办了。
这应该是个数学问题。Top
6 楼jinjazz(近身剪)回复于 2005-04-04 18:10:31 得分 0
参考:
var m,n,s:real;
function Test(x:real):real;
begin
result:=power(x,3)+2*power(x,2)+3*x+4 ;
end;
begin
m:=100;
n:=-100;
while m-n>1E-5 do
begin
s:=(m+n)/2;
if Test(s)*Test(m)<0 then n:=s else m:=s;
end;
showmessage(format('%f,%f',[s,test(s)]));
end;Top
7 楼xjp6688(大平/要做必须最好)回复于 2005-04-04 18:21:54 得分 0
看看数值分析什么的,都有相应的算法!Top
8 楼orchidbing(米饼)回复于 2005-04-04 21:05:41 得分 0
谁有源程序,还是想不出来Top
9 楼chijingde(AD)回复于 2005-04-04 22:25:28 得分 0
三次方程是有求根公式的,但是公式比较繁,教科书里是不介绍的,也没有必要去记得,因为没有多大用处。中学生做这样的题目,一般采用的方法是猜出这三次式的一个实根,总是从0周围的整数里去猜,可以先看0是不是根,再看1,-1,2,-2,3,……,一定可以找到的,否则这个题目不会给中学生做的。找到一个实根a,则这个三次式一定有因式(x-a),把三次式除以(x-a)(多项式除法应该学会,这是有用的),商式是个二次式,那么原来的三次式就已经分解成为一个一次式(x-a)与一个二次式(商式)的乘积,剩下来就是那个二次式是不是还能分解的问题了,这个你应该会的。
例如本题,x^3-5x^2+8x-4,0不是根,1代入等于0是根,找到了。x^3-5x^2+8x-4除以x-1,商式是x^2-4x+4,又商式还能分解成(x-2)^2,所以结果是:
x^3-5x^2+8x-4=(x-1)(x-2)^2.Top
10 楼chijingde(AD)回复于 2005-04-04 22:25:33 得分 0
列举(枚举)法
枚举(enumerate)法是基于计算机运算速度快这一特性的一种使用非常普遍的思维方法。它是根据问题中的条件将可能的情况一一列举出来分析求解的方法。但有时一一列举出的情况数目很大,如果超过了我们所能忍受的范围则需要考虑如何去排除不合理的情况,尽可能减少列举的问题可能解的数目。
例:求一元三次方程的解。
有形如:ax3+bx2+cx+d=0一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行上输出这三个实根。
这道题的解法很多,最为简洁的方法就是直接枚举可能的实根解。
var a,b,c,d:real;i:integer;
function f(x:real):real;
begin
f:=a*x*x*x+b*x*x+c*x+d
end;
begin
readln(a,b,c,d);
for i:=-10000 to 10000 do {枚举方程所有可能的解}
if abs(f(i/100))<1e-4 then write(i/100:2:2,' ');
end.
Top
11 楼chijingde(AD)回复于 2005-04-04 22:26:17 得分 0
以上答案均出自googleTop




