购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4-11 专题实操:价值衰减/存款与房贷/计算地球任意两点的距离

4-11-1 银行存款复利的计算

程序实例 ch4_11.c:银行存款复利的计算,假设目前银行年利率是1.5%,复利公式如下:

上述公式total代表本金总和,capital代表本金,rate是年利率, n 是年数。假设有一笔5万元存款,请计算5年后的本金总和。

4-11-2 价值衰减的计算

程序实例 ch4_12.c:有一辆原价100万元的品牌车,前3年每年价值衰减15%,计算车辆3年后的残值是多少。

读者可以留意第8行价值衰减的公式。

4-11-3 计算坐标轴两个点之间的距离

有两个点坐标分别是( x 1, y 1)、( x 2, y 2),求两个点的距离。其实这是中学数学的勾股定理,即直角三角形两直角边边长的平方和等于斜边的平方。

所以,对于坐标上的两个点必须计算相对直角三角形的两个边长。假设 a 是( x 1- x 2), b 是( y 1- y 2),然后计算斜边长,这个斜边长就是两点的距离,图示如下:

计算公式如下:

可以将上述公式转换成下列计算机中的数学表达式:

在人工智能的应用中,常用点坐标代表某一个对象的特征(feature),计算两个点之间的距离,相当于可以了解物体间的相似程度。距离越短,代表相似度越高;距离越长,代表相似度越低。

程序实例 ch4_13.c:有两个点坐标分别是(1, 8)与(3, 10),请计算这两点之间的距离。

4-11-4 房屋贷款问题实操

每个人在成长过程可能会经历买房子,第一次住在属于自己的房子里是一个美好的经历,大多数人在这个过程中可能会需要向银行贷款。这时我们会思考需要贷款多少钱?贷款年限是多少?银行利率是多少?然后我们可以利用上述已知数据计算每个月还款金额是多少,同时我们会好奇整个贷款结束究竟还了多少贷款本金和利息。在做这个专题实操分析时,我们已知的条件如下。

贷款金额:使用loan作变量。

贷款年限:使用year作变量。

年利率:使用rate作变量。

然后我们需要利用上述条件计算下列结果。

每月还款金额:使用monthlyPay作变量。

总共还款金额:使用totalPay作变量。

处理这个贷款问题的数学公式如下:

在银行的贷款术语中习惯用年利率,所以碰上这类问题我们需将所输入的利率先除以100,这是转成百分比,同时要除以12表示是月利率。可以用下列方式计算月利率,使用monthrate作变量。

monthrate=rate / (12×100)

为了不让求每月还款金额的数学公式变复杂,笔者将分子(第19行)与分母(第20行)分开计算,第21行则是计算每月还款金额,第22行是计算总共还款金额。

4-11-5 正五边形面积

在几何学中,假设正五边形边长是 s ,其面积的计算公式如下:

上述计算正五边形面积需要使用数学的pi和tan( )。

程序实例 ch4_15.c:请输入正五边形的边长 s ,此程序会计算此正五边形的面积。

4-11-6 使用经纬度计算地球任意两点的距离

我们可以使用经度和纬度计算地球上每一个点的位置。有了两个地点的经纬度后,可以使用下列公式计算两点之间的距离。

distance= r ×acos(sin( x 1)×sin( x 2)+cos( x 1)×cos( x 2)×cos( y 1- y 2))

上述 r 是地球的半径,约6371千米,由于Python的三角函数参数都是弧度(radians),我们使用上述公式时,需使用math.radian( )函数将经纬度角度转换成弧度。上述公式西经和北纬是正值,东经和南纬是负值。

经度坐标是-180°~180°,纬度坐标是在-90~90°,在用括号表达时(纬度,经度),第一个参数是纬度,第二个参数是经度。

其实我们开启Google地图后就可以在网址行看到我们目前所在地点的经纬度,选择不同地点就可以看到所选地点的经纬度信息。

查询后得知台北车站的经纬度是(25.0452909, 121.5168704),香港红磡车站的经纬度是(22.2838912, 114.173166),为了简化程序,保留4位小数。

程序实例 ch4_16.c:香港红磡车站的经纬度信息是(22.2839, 114.1731),台北车站的经纬度是(25.0452, 121.5168),请计算台北车站至香港红磡车站的距离。

上述第19行~21行其实是同一道指令,因为此道指令太长,所以分行输出,分行方式是在最右边添加“\”符号,C编译程序会知道下一行是与这行相同指令。

4-11-7 求一元二次方程式的根

在中学数学中,我们可以看到下列一元二次方程式:

可以用下列公式获得根:

上述方程式有3种状况,如果上述 b 2 -4 ac 是正值,那么这个一元二次方程式有2个实数根。如果上述 b 2 -4 ac 是0,那么这个一元二次方程式有1个实数根。如果上述 b 2 -4 ac 是负值,那么这个一元二次方程式没有实数根。

实数根的几何意义是与 x 轴交叉点的坐标。

程序实例 ch4_17.c:有一个一元二次方程式如下:

3 x 2 +5 x +1=0

求这个方程式的根。

4-11-8 求解联立线性方程式

假设有一个联立线性方程式如下:

ax + by = e

cx + dy = f

可以用下列方式获得x和y值。

在上述公式中,如果“ a × d b × c ”等于0,则此联立线性方程式无解。

程序实例 ch4_18.c:计算下列联立线性方程式的值。

2x+3y=13

x –2y=-4

4-11-9 使用反余弦函数计算圆周率

前面程序实例笔者使用3.1415926代表圆周率pi,这个数值已经很精确了,其实我们也可以使用反余弦函数acos( )计算圆周率pi。

acos(-1)

当将pi设为双倍精度浮点数时,可以获得更精确的圆周率pi。

程序实例 ch4_19.c:使用反余弦函数acos( )计算圆周率pi。 0cxxNveVoSIed9mmcMsH9vNICe57z2vgGfdtyg01CcEkU9iYo7cGCnJhAWJuEG88

点击中间区域
呼出菜单
上一章
目录
下一章
×