700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python求解非线性方程

Python求解非线性方程

时间:2021-05-15 12:59:09

相关推荐

Python求解非线性方程

原文地址:/ville_zeng/article/details/25370053,转载请注明出处!

昨晚一朋友问了我道数学题:已知弧长l=156,弦长d=140,求半径R和夹角a。

我试了下,方程比较好列,但是求解的话就比较费劲了,心想要是用Matlab的话也就瞬间的事儿,可电脑没安装Matlab,然后想到Python的一个数学库scipy,研究下,是可以解决的。

方程如下:

· cos(a) = 1 - d^2 / (2*R^2)

· L = a * R

使用scipy下的fsolve函数即可求解,代码如下:

from scipy.optimize import fsolvefrom math import cosdef f(x):d = 140l = 156a = float(x[0])r = float(x[1])return [cos(a) - 1 + (d*d)/(2*r*r),l - r * a]result = fsolve(f, [1, 1])print result

计算结果:

[ 1.5940638 97.86308398],即夹角为1.59,半径为97.86

关于scipy函数库,官网地址:/,文档地址:/paper/books/scipydoc/scipy_intro.html。该库貌似没法用pip install安装,安装的话Ubuntu平台下可以如下操作:

sudo apt-get install python-numpy python-scipy

因为scipy是依赖numpy的,所以两者都要安装。文章写的比较简单,希望能给读者以帮助。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。