社区
Java SE
帖子详情
新手请教:编写一个计算二次方程ax^2+bx+c=0的根
6302573
2003-09-30 08:42:04
编写一个计算二次方程ax^2+bx+c=0的根,希望写的清楚一些因为是新手谢谢了
...全文
645
12
打赏
收藏
新手请教:编写一个计算二次方程ax^2+bx+c=0的根
编写一个计算二次方程ax^2+bx+c=0的根,希望写的清楚一些因为是新手谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
icecloud
2003-10-01
打赏
举报
回复
啊,刚才翻了翻书,发现叙述太复杂了
我看你们还是自己看书找资料去吧
大意是先根据方程组建立迭代公式
如
Xi = 1-n累加 dijXij + fi(i=1,2,....n)
Xi (k+1)次幂 = 1-n累加dijXij(k次) + fi(i=1,2,....n)
其中 dii = 0, dij=-aij/aii, fi =bi/aii
(上面的公式写的太烂了没办法,有时间这位兄弟自己看看书吧)
上面是雅可比迭代法,最简单的
然后取x1=x2=....=xn=0,带入迭代公式
不断用Xi(k+1)来迭代(递归)计算
直到最后得到稳定的逼近值(书上的例子一般是在10次迭代之内稳定)
以上方法是计算数学领域中常用的迭代法的最简单例子
用计算机编写程序很容易实现这种规律性极强的算法
嘿,献丑了,我是计算机系,不是数学系的。这些早就忘光了
刚找出书来复习了一下
peng14331
2003-10-01
打赏
举报
回复
对啊,我只懂二次的,楼上的如果知道高次的不妨说说思路
tomcatjava
2003-10-01
打赏
举报
回复
楼上的是数学系的吧,同门中人!!!!!
icecloud
2003-10-01
打赏
举报
回复
2次的是可以这样算。但是n次的不能在这么算了
当年有一门课程叫做数值分析,就是讲如何解线性方程组
用到迭代法,插值法等
嗯...已经忘记了...得查查书
peng14331
2003-10-01
打赏
举报
回复
import java.io.*;
class InputData
{static private String s="";
static public void input()
{BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
try{
s=br.readLine();
}catch(IOException e){}
static public float getFloat()
{input();
return Float.parseFloat(s);
}
}
class Equation //表示方程式的类
{float a,b,c,disc=0;
void input()
{System.out.println("请输入三个参数a,b,c");
System.out.print("a=");
a=InputData.getFloat();
System.out.print("b=");
b=InputData.getFloat();
System.out.print("c=");
c=InputData.getFloat();
}
void getRoots()
{double x1=0,x2=0;
double realpart=0,imagpart=0;
if(Math.abs(a)<=1e-5)
{System.out.print("此方程式不是一元二次方程");
System.exit(0);
}
else
{System.out.println("一元二次方程");
disc=b*b-4*a*c;
}
if(Math.abs(a)<=1E-5)
System.out.print("此方程有两个相等的根:"+(-b/(2*a)));
else if(disc>1E-5)
{x1=(-b+Math.sqrt(disc))/(2*a);
x2=(-b-Math.sqrt(disc))/(2*a);
System.out.print("此方程有两个不相等的根:"+"\nx1="+x1+" x2="+x2);
}
else
{realpart=-b/(2*a);
imagpart=Math.sqrt(-disc)/(2*a);
System.out.println("有两个复数根:");
System.out.print("x1="+realpart+"+"imagpart+"i");
System.out.print("\nx2="+realpart+"-"imagpart+"i");
}
public class Roots(){
public static void main(String args[]) throws IOException{
Equation e=new Equation();
e.input();
e.getRoots();
}
}
我这也是恰巧有源程序,打的匆忙,若有小的错误,还望你自己去纠正
希望能有所帮助.
mhz
2003-10-01
打赏
举报
回复
同意
wawaxp
2003-10-01
打赏
举报
回复
回复人: maoqi2232(maoqi2232
是作业题吧,要自己做!
--------------------------
同意
tomcatjava
2003-10-01
打赏
举报
回复
自己根据求根公式写吧,应该不难的!!
主要是分情况讨论!!
maoqi2232
2003-10-01
打赏
举报
回复
是作业题吧,要自己做!
homerzhou
2003-10-01
打赏
举报
回复
可以参考清华那本<C程序设计>,里面不是有方法么。类似的算法,JAVA和C差不多的。只要把C里面的sqrt(x)换成Math.sqrt(x)之类的就OK了
jianlin
2003-09-30
打赏
举报
回复
UP
6302573
2003-09-30
打赏
举报
回复
up
用Java
编写
程序,求一元
二次方程
ax²+
bx
+c=0的根(系数在程序中给定),并输出。
用Java
编写
程序,求一元
二次方程
ax²+
bx
+c=0的根(系数在程序中给定),并输出。
Java Application和Applet两种方式求一元
二次方程
ax2+
bx
+c=0的根
按Java Application和Applet两种方式分别
编写
程序,求一元
二次方程
ax2+
bx
+c=0的根(系数在程序中给定),并输出。
matlab高次方程求解
matlab高次方程求解,通过编程实战掌握具体应用。包括matlab高次方程求解前、matlab高次方程求解中、matlab高次方程求解后。
求
ax^
2+
bx
+c=0(a>o)根的c语言程序,1、
编写
一程序,求一元
二次方程
ax^
2+
bx
+c=0(a<>,c++
编写
程序,一元
二次方程
ax^
2+
bx
+c=0的根...
问题标题1、
编写
一程序,求一元
二次方程
ax^
2+
bx
+c=0(a2019-5-10来自ip:11.182.150.37的网友咨询浏览量:509手机版问题补充:1、
编写
一程序,求一元
二次方程
ax^
2+
bx
+c=0(a<>0)的解,c++
编写
程序,一元
二次方程
ax^
2+...
C 求一元
二次方程
ax^
2+
bx
+c=0 的解。
一元
二次方程
ax^
2+
bx
+c=0 的解有以下几种可能: ①系数a=0时,该方程不是
二次方程
。 ②判别式b^2-4ac=0时,有两个相等实根。 ③判别式b^2-4ac>0时,有两个不等实根。 ④判别式b^2-4ac<0时,有两个共轭复根。 ...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章