大神帮忙看下问题出在哪?能运行没结果。
mfp吧
全部回复
仅看楼主
level 11
qimi056 楼主
解一个简单的方程组
function myf_radius(span, height)
variable l,h,r,x
l=span
h=height
solve r, x
h+x==r
x**2+l**2/4==r**2
slvreto
print("\nx=="+x)
print("\nr=="+r)
return
endf
按我的意思[吐舌]
myf_radius(10,3)
应该输出
x==2.6667
r==5.6667
但是现在是NULL,问题出在哪?[黑线]
2016年01月08日 07点01分 1
level 1
solve只能解一元高次多项式或者多元一次方程组,您的这个是二元二次方程组,超过了solve的能力,所以解不出来,解决办法是把第二个方程是展开为
x**2+l**2/4==x**2 + 2*h*x+h**2
(注意右边不能写成(x+h)**2,必须展开),这样就变成了一个一元二次方程和一个一元一次方程,应该就可以了。
2016年01月08日 11点01分 2
这个比较简单,手工算也很快。对于二元二次方程组有其他解决方案吗?除了solve。我觉得二元二次方程组很多地方都能碰到,难道只能人工消元吗?[疑问]
2016年01月08日 11点01分
另外还有我语法上有没有问题?[黑线]return到底需不需要?
2016年01月08日 11点01分
@qimi056 不返回值,return不需要。你的语法是对的,问题就是solve的局限性,二元二次方程组解不了。当然,我可以增加对二元二次方程组得支持,但这不是现在最优先的目标,现在最优先的目标是对声音和各种格式的视频以及图片的支持。
2016年01月08日 12点01分
@woshiwppaa 好,加油[哈哈]
2016年01月08日 12点01分
1