100分求一元三次方程的解的源码 x^3+ax^2+bx+c=0如果是迭代法,要求迭代次数少,精确如果是公式法,可以加送100分,也要求精确当a,b很大时要求方程解精确,谢谢email to:[email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我有算法,还没有程序,等我写好了就贴上去.wait...wait... 随便是多少次方。哪怕是小数。<html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0.5" topmargin="10"><form name="ff" method="post" action=""> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="24"> <div align="center"><font size="3" color="#CC0000"><b> 二分法解方程</b></font><font size="2" color="#003399"> <font color="#000000"><i> </i></font></font></div> </td> </tr> <tr> <td> <div align="center"><font color="#0066CC"><font size="2">方程: <input type="text" name="t1" value="x-2"> <font color="#000000"> <b>=0</b></font> 起始: <input type="text" name="start" size="15" value="0"> 结束: <input type="text" name="end" size="15" value="2"> 步长 <input type="text" name="mid" size="10" value="0.000001"> <input type="button" name="Button" value="求解" onClick="draw(erfenfa());"> </font><font color="#0066CC"></font></font></div> </td> </tr> <tr> <td> <div align="right"><font color="#0066CC"><font color="#0066CC"><font color="#0066CC"><font color="#990033" size="1"> </font></font></font></font></div> </td> </tr> </table> </form><font size="2" color="#0066CC"> <table width='100%' border='1' cellspacing='0' cellpadding='0' bordercolor='#009999'> <tr> <td width='29%'> <div><font size='2'>表达式</font></div> </td> <td width='8%'> <div><font size='2'>x1</font></div> </td> <td width='8%'> <div><font size='2'>x2</font></div> </td> <td width='24%'> <div><font size='2' COLOR='RED'>答案</font></div> </td> <td width='24%'> <div><font size='2'>答案对应的值</font></div> </td> <td width='15%'> <div><font size='2'>步长</font></div> </td> </tr> </table><div id="ww"> </div><script>function fx(x){return eval(document.ff.t1.value);}function addurl(){document.ff.t1.value=document.ff.t1.value;}function erfenfa(){x1=eval(document.ff.start.value);x2=eval(document.ff.end.value);eps=eval(document.ff.mid.value);if(fx(x1)*fx(x2)>0)return "错误1!";while(Math.abs(x1-x2)>eps){x3=x1*0.5+x2*0.5;if(fx(x1*1)==0){x3=x1;break;}else if(fx(x2*1)==0){x3=x2;break;}else if(fx(x3*1)==0){root=x3;break;}else if(fx(x1*1)*fx(x3*1)<0)x2=x3;else if(fx(x2*1)*fx(x3*1)<0)x1=x3;else{root="错误2!";break;}}root=x3;if(fx(Math.round(x3))==0)root=Math.round(x3);return root;}function draw(root){if(root=="错误1!"||root=="错误2!")thx=document.ff.start.value*1;elsethx=root;ww.innerHTML="<table width='100%' border='1' cellspacing='0' cellpadding='0' bordercolor='#009999'><tr><td width='29%'><div><a><font size='2'>"+document.ff.t1.value+"</font></a></div></td><td width='8%'><div><font size='2'>"+document.ff.start.value+"</font></div></td><td width='8%'><div><font size='2'>"+document.ff.end.value+"</font></div></td><td width='24%'> <div><font size='2' COLOR='RED'>"+root+"</font></div></td><td width='24%'> <div><font size='2'>"+fx(thx)+"</font></div> </td> <td width='15%'> <div><font size='2'>"+document.ff.mid.value+"</font></div></td></tr></table>"+ww.innerHTML;}</script><br><br></font><hr size="1"><font size="2" color="#0066CC"><br></font> <table width="66%" align="center" bordercolor="#0099FF" cellpadding="1"> <tr> <td height="17" valign="middle"> <div align="center"><font size="4"><b>使用方法</b></font></div> </td> </tr> <tr> <td valign="middle"><font size="2">加:+ 减:- 乘:* 除:/</font></td> </tr> <tr> <td valign="middle"><font size="2">乘方:x的y方:Math.pow(x,y)</font></td> </tr> <tr> <td valign="middle"><font size="2">正弦:Math.sin(x) 余弦:Math.cos(x) 正切:Math.tan(x) </font></td> </tr> <tr> <td valign="middle"><font size="2">反正弦:math.asin(x) 反余弦:Math.acos(x) 反正切:Math.atan(x)</font></td> </tr> <tr> <td valign="middle"><font size="2">2的自然对数:Math.LN2 10的自然对数:Math.LN10 以E为底的自然对数:Math.log(x)</font></td> </tr> <tr> <td valign="middle"><font size="2">圆周率:Math.PI 绝对值:Math.abs(x) E的x次方:Ma</font></td> </tr></table><br><hr size="1"><div align="center"><font color="#0066CC"><font color="#0066CC"><font color="#0066CC"><font color="#990033" size="2">-阿P制作-</font></font></font></font></div></body></html> 应该是用弦截法吧,无限逼近。数据结构里面学过似乎。================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。 ★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! ★ 支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名 ● 可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zipHttp://www.ChinaOK.net/csdn/csdn.rarHttp://www.ChinaOK.net/csdn/csdn.exe [自解压] cardano公式法,但开三次方cuberoot用的是牛顿法!还没编译,请自己查错#define PI 3.1415926535897923846264double cuberoot(double x){ double s, prev; int pos; if(x == 0) return 0; if(x > 0) pos = 1; else {pos = 0; x = -x;} if(x > 1) s = x; else s = 1; do { prev = s; s = (x / (s * s) + 2 * s) / 3; } while(s < prev) if(pos) return prev; else return -prev;}void cardano(double a, double b, double c, double d){ double p, q, t, a3, b3, x1, x2, x3; b /= (3 * a); c /= a; d /= a; p = b * b - c / 3; q = (b * (c - 2 * b * b) - d) / 2; a = q * q - p * p * p; if(a == 0) { q = cuberoot(q); x1 = 2 * q - b; x2 = -q - b; printf("x = %g, %g, %g", x1, x2, x2); } else if(a > 0) { if(q > 0) a3 = cuberoot(q + sqrt(a)); else a3 = cuberoot(q - sqrt(a)); b3 = p / a3; x1 = a3 + b3 - b; x2 = -0.5 * (a3 + b3) - b; x3 = fabs(a3 - b3) * sqrt(3.0) / 2; printf("x = %g, %g +- %g i", x1, x2, x3); } else { a = sqrt(p); t = acos(q / (p * a)); a *= 2; x1 = a * cos(t / 3) - b; x2 = a * cos((t + 2 * PI) / 3) - b; x3 = a * cos((t + 4 * PI) / 3) - b; printf("x = %g, %g, %g", x1, x2, x3); }} 我有java版的,可以求n元方程组要的话,给我发信[email protected] U盘防止格式化 SDI带切分的多视图切换~望给予帮助 代码太长,怎么能方便确认"{"和"}"的对应关系 在内存中通过一个流把exe文件的内容给你,直接运行exe,而不生成一个exe文件再执行。 问:如何将CListCtrl中的数据分页打印出来。 有没有谁知道线程个数设为多少时程序的效率最高? 请大家指点:有关排列的问题 请大家帮忙找一个地址,信箱地址 请教TAPI的问题 请教各位一个ADO连接Access数据中的字段查询问题!!非常着急呀!! 怎样固定视图区的大小? 转型的本质到底是什么?在线等待,在线给分!!!
wait...wait...
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0.5" topmargin="10">
<form name="ff" method="post" action="">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="24">
<div align="center"><font size="3" color="#CC0000"><b> 二分法解方程</b></font><font size="2" color="#003399">
<font color="#000000"><i> </i></font></font></div>
</td>
</tr>
<tr>
<td>
<div align="center"><font color="#0066CC"><font size="2">方程:
<input type="text" name="t1" value="x-2">
<font color="#000000"> <b>=0</b></font> 起始:
<input type="text" name="start" size="15" value="0">
结束:
<input type="text" name="end" size="15" value="2">
步长
<input type="text" name="mid" size="10" value="0.000001">
<input type="button" name="Button" value="求解" onClick="draw(erfenfa());">
</font><font color="#0066CC"></font></font></div>
</td>
</tr>
<tr>
<td>
<div align="right"><font color="#0066CC"><font color="#0066CC"><font color="#0066CC"><font color="#990033" size="1">
</font></font></font></font></div>
</td>
</tr>
</table>
</form>
<font size="2" color="#0066CC"> <table width='100%' border='1' cellspacing='0' cellpadding='0' bordercolor='#009999'>
<tr>
<td width='29%'>
<div><font size='2'>表达式</font></div>
</td>
<td width='8%'>
<div><font size='2'>x1</font></div>
</td>
<td width='8%'>
<div><font size='2'>x2</font></div>
</td>
<td width='24%'>
<div><font size='2' COLOR='RED'>答案</font></div>
</td>
<td width='24%'>
<div><font size='2'>答案对应的值</font></div>
</td>
<td width='15%'>
<div><font size='2'>步长</font></div>
</td>
</tr>
</table>
<div id="ww">
</div>
<script>
function fx(x)
{
return eval(document.ff.t1.value);
}
function addurl()
{document.ff.t1.value=document.ff.t1.value;
}
function erfenfa()
{
x1=eval(document.ff.start.value);
x2=eval(document.ff.end.value);
eps=eval(document.ff.mid.value);
if(fx(x1)*fx(x2)>0)
return "错误1!";
while(Math.abs(x1-x2)>eps)
{x3=x1*0.5+x2*0.5;
if(fx(x1*1)==0)
{x3=x1;
break;
}
else if(fx(x2*1)==0)
{x3=x2;
break;
}
else if(fx(x3*1)==0)
{root=x3;
break;}
else if(fx(x1*1)*fx(x3*1)<0)
x2=x3;
else if(fx(x2*1)*fx(x3*1)<0)
x1=x3;
else
{root="错误2!";
break;}
}
root=x3;
if(fx(Math.round(x3))==0)
root=Math.round(x3);
return root;
}
function draw(root)
{
if(root=="错误1!"||root=="错误2!")
thx=document.ff.start.value*1;
else
thx=root;
ww.innerHTML="<table width='100%' border='1' cellspacing='0' cellpadding='0' bordercolor='#009999'><tr><td width='29%'><div><a><font size='2'>"+document.ff.t1.value+"</font></a></div></td><td width='8%'><div><font size='2'>"+document.ff.start.value+"</font></div></td><td width='8%'><div><font size='2'>"+document.ff.end.value+"</font></div></td><td width='24%'> <div><font size='2' COLOR='RED'>"+root+"</font></div></td><td width='24%'> <div><font size='2'>"+fx(thx)+"</font></div> </td> <td width='15%'> <div><font size='2'>"+document.ff.mid.value+"</font></div></td></tr></table>"+ww.innerHTML;
}</script>
<br>
<br>
</font>
<hr size="1">
<font size="2" color="#0066CC"><br>
</font>
<table width="66%" align="center" bordercolor="#0099FF" cellpadding="1">
<tr>
<td height="17" valign="middle">
<div align="center"><font size="4"><b>使用方法</b></font></div>
</td>
</tr>
<tr>
<td valign="middle"><font size="2">加:+ 减:- 乘:* 除:/</font></td>
</tr>
<tr>
<td valign="middle"><font size="2">乘方:x的y方:Math.pow(x,y)</font></td>
</tr>
<tr>
<td valign="middle"><font size="2">正弦:Math.sin(x) 余弦:Math.cos(x) 正切:Math.tan(x)
</font></td>
</tr>
<tr>
<td valign="middle"><font size="2">反正弦:math.asin(x) 反余弦:Math.acos(x) 反正切:Math.atan(x)</font></td>
</tr>
<tr>
<td valign="middle"><font size="2">2的自然对数:Math.LN2 10的自然对数:Math.LN10 以E为底的自然对数:Math.log(x)</font></td>
</tr>
<tr>
<td valign="middle"><font size="2">圆周率:Math.PI 绝对值:Math.abs(x) E的x次方:Ma</font></td>
</tr>
</table>
<br>
<hr size="1">
<div align="center"><font color="#0066CC"><font color="#0066CC"><font color="#0066CC"><font color="#990033" size="2">-阿P制作-</font></font></font></font></div>
</body>
</html>
================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]
还没编译,请自己查错#define PI 3.1415926535897923846264double cuberoot(double x)
{
double s, prev;
int pos; if(x == 0) return 0;
if(x > 0) pos = 1;
else {pos = 0; x = -x;}
if(x > 1) s = x; else s = 1;
do
{
prev = s;
s = (x / (s * s) + 2 * s) / 3;
} while(s < prev)
if(pos) return prev;
else return -prev;
}void cardano(double a, double b, double c, double d)
{
double p, q, t, a3, b3, x1, x2, x3; b /= (3 * a); c /= a; d /= a;
p = b * b - c / 3;
q = (b * (c - 2 * b * b) - d) / 2;
a = q * q - p * p * p;
if(a == 0)
{
q = cuberoot(q);
x1 = 2 * q - b;
x2 = -q - b;
printf("x = %g, %g, %g", x1, x2, x2);
}
else if(a > 0)
{
if(q > 0) a3 = cuberoot(q + sqrt(a));
else a3 = cuberoot(q - sqrt(a));
b3 = p / a3;
x1 = a3 + b3 - b;
x2 = -0.5 * (a3 + b3) - b;
x3 = fabs(a3 - b3) * sqrt(3.0) / 2;
printf("x = %g, %g +- %g i", x1, x2, x3);
}
else
{
a = sqrt(p); t = acos(q / (p * a)); a *= 2;
x1 = a * cos(t / 3) - b;
x2 = a * cos((t + 2 * PI) / 3) - b;
x3 = a * cos((t + 4 * PI) / 3) - b;
printf("x = %g, %g, %g", x1, x2, x3);
}
}
要的话,给我发信[email protected]