这个方程在(a,b,c)不为零时,可以将方程变成以下三个可以使用程序提供的数据函数求解的表达式:(a,b,c为零的求解程序应该没有问题吧。)
x=m/a 此a参数不为0;
x=e^( ( ln (n/b) )/0.313 )
n=c-m
(上面的方程转变,应该能看懂吧。)
然后,我们可以用假定m的值做循环
计算出两个x的值,根据两个x值的比较结果修正m值(增加/减少)
再做循环,直到找到你满意的x值。
(对m值的修正,是能否找到解的关键,只要注意基本函数的单调性,我想应该是能解决的。)
在做这些东西可真不容易呀...A:<input name="texta" type="text" id="texta" />
B:<input name="textb" type="text" id="textb" />
C:<input name="textc" type="text" id="textc" />
<input type="button" name="Submit" value="计 算" onclick="showResult()" />
R1<input name="text1" type="text" id="text1" />
R2<input name="text2" type="text" id="text2" />
<script>
function showResult(){
var pattern=/[0-9]+/
var a=document.getElementById("texta").value
var b=document.getElementById("textb").value
var c=document.getElementById("textc").value
var r1,r2
if(a==""||b==""||c=="") //检测输入的合法性
{
alert("请输入完整的信息")
return 0
}
if(a=="0")
{
alert("a不能为0")
document.getElementById("texta").focus()
return 0
}
if(!pattern.test(a)||!pattern.test(b)||!pattern.test(c))
{
alert("请输入数字")
return 0
}
if((Math.pow(b,2)-4*a*c)<0)
{
alert("b平方小于4ac,请新输入")
return 0
}
r1=((-b)+Math.pow((Math.pow(b,2)-4*a*c),0.5))/2*a
document.getElementById("text1").value=r1
r2=((-b)-Math.pow((Math.pow(b,2)-4*a*c),0.5))/2*a
document.getElementById("text2").value=r2
}
</script>