| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2712 人关注过本帖
标题:谁能解此一元三次方程?
只看楼主 加入收藏
剑人
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2005-9-21
收藏
得分:0 
给你个例子
//解方程5x3-4x2-50x+51=0在4附近的解。
int _tmain(int argc, _TCHAR* argv[])
{
float x,x0,f,f1;
x = 4;
do
{
x0=x;
f = ((5*x0-4)*x-50)*x+51;
f1= (15*x0-8)*x-50;
x=x0-f/f1;
}while(fabs(x-x0)>=1e-5);
cout<<"方程的根=";
cout<<setiosflags(ios::fixed)<<setprecision(6)<<x<<endl;
return 0;
}
2006-03-23 23:23
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 

不知道你求的是不是方程:9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4=0的根?
若是的话程序如下:
#include"math.h"
main()
{ static i=0;
double m=0.0,n=1.0,t,j,k,p;
do
{
k=t=(m+n)/2.0;
if((9.1*1e3*m*m*m+8.099*m*m+4.459*1e-3*m-1e-4)*(9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4)<0)
{n=t;i++; printf("t=%f,f(%f)=%f,第%d次划分\n",t,t,9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4,i);}
if((9.1*1e3*m*m*m+8.099*m*m+4.459*1e-3*m-1e-4)*(9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4)>0)
{m=t;i++; printf("t=%f,f(%f)=%f,第%d次划分\n",t,t,9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4,i);}
j=(m+n)/2.0;
}while(fabs(k-j)>=1e-10);
printf("方程9.1*1e3*X*X*X+8.099*X*X+4.459*1e-3*X-1e-4=0的一个实数根为:%f\n",t);
printf("f(%f)=%f",t,9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4);
getch();
}

♂ 死后定当长眠,生前何须久睡。♀
2006-09-15 12:51
zzc0816
Rank: 1
等 级:新手上路
帖 子:61
专家分:7
注 册:2006-9-14
收藏
得分:0 
以下是引用303770957在2006-9-15 12:51:32的发言:

不知道你求的是不是方程:9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4=0的根?
若是的话程序如下:
#include"math.h"
main()
{ static i=0;
double m=0.0,n=1.0,t,j,k,p;
do
{
k=t=(m+n)/2.0;
if((9.1*1e3*m*m*m+8.099*m*m+4.459*1e-3*m-1e-4)*(9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4)<0)
{n=t;i++; printf("t=%f,f(%f)=%f,第%d次划分\n",t,t,9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4,i);}
if((9.1*1e3*m*m*m+8.099*m*m+4.459*1e-3*m-1e-4)*(9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4)>0)
{m=t;i++; printf("t=%f,f(%f)=%f,第%d次划分\n",t,t,9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4,i);}
j=(m+n)/2.0;
}while(fabs(k-j)>=1e-10);
printf("方程9.1*1e3*X*X*X+8.099*X*X+4.459*1e-3*X-1e-4=0的一个实数根为:%f\n",t);
printf("f(%f)=%f",t,9.1*1e3*t*t*t+8.099*t*t+4.459*1e-3*t-1e-4);
getch();
}

我看了半天,发现你写的跟题目是对的哦```但是别可以多用写FOR语句的哦.


2006-09-15 13:45
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 


♂ 死后定当长眠,生前何须久睡。♀
2006-09-17 14:06
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
9100x^3+8.099x^2+0.004459x-0.0001=0

X1=0.00189905489753402
X2=-0.00139452744876701+0.0019600667226623*i
X3=-0.00139452744876701-0.0019600667226623*i

♂ 死后定当长眠,生前何须久睡。♀
2012-05-23 10:24
快速回复:谁能解此一元三次方程?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014094 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved