来做实验吧!

前言

初学Python,下面给大家展示三个有意思的小实验

正文

用Python语言实现水藻生长的迭代法应用·水藻指数函数迭代模型

原理:迭代法是一种步步为营,逐次推进,逐步接近的现代计算机求解问题的基本形式。迭代法的核心是建立迭代关系式。

问题:假设在空池塘中放入一颗水藻,该类水藻会每周长出4颗新的水藻,问12周后,池塘中有多少颗水藻?

要求:用Python语言编程实现上述问题的求解。记录并分析实验结果。

实验过程

a.基本原理

根据已知条件,第一周有一颗水藻,每过一周,一颗水藻会长出三颗新的水藻,那么,第二周的水藻数量为

1+4=5,

也就是说第二周会有5颗水藻。

第三周的时候,这5颗水藻各自又会新长出4颗水藻,水藻的数量变为

5+4+4+4+4+4=5+20=25,

第四周的时候,水藻数量变为125颗,第五周的时候,水藻数量变为625颗……

以此类推,每过一周,水藻的数量会增长至上一周的5倍,可以用函数公式来表示水藻的增长情况:设周数为n,水藻的数量为f (n),那么,f (n)与n的关系式为

f(n)=5^{n-1}

b.程序源码
x=1 #第一周池塘中有1颗水藻
for i in range(11): #迭代11次,计算第2周到第12周的水藻数量
    y=4*x #每周增加的水藻数量为4
    x=x+y #计算本周水藻数量
print("第12周池塘中的水藻数量为:",x)
c.运行结果

经MATLAB的命令行窗口检验,运算结果是对的。

线性回归与拟合

写出程序并生成图。先在x属于[-2,2]范围内任意做出350个点,其值由y=7x-16再加上一些随机噪音生成,然后画出这些点的拟合直线。

实验过程

a.基本原理

首先导入需要的库,包括random、matplotlib.pyplot和numpy。

生成x轴的数据,使用numpy的linspace函数生成-2到2之间的150个等间距的数。

生成y轴的数据,使用y=7x-16的公式生成基础数据,再加上一些随机噪音,使用numpy的randn函数生成150个随机数。

使用numpy的polyfit函数拟合一次函数,得到拟合直线的斜率和截距。

使用numpy的polyval函数根据拟合直线的斜率和截距计算出拟合直线的y值。

使用matplotlib.pyplot的scatter函数绘制散点图,使用plot函数绘制拟合直线,最后使用show函数显示图像。

b.程序源码
import random
import matplotlib.pyplot as plt
import numpy as np
#生成随机点
x=np.linspace(-2,2,150)
y=7*x-16+np.random.randn(150)*0.3
#画出散点图,用蓝色标识
colors='b'
plt.scatter(x,y,c=colors)
#拟合直线,用红色标识
z=np.polyfit(x,y,1)
p=np.poly1d(z)
plt.plot(x,p(x),"r-")
#显示图像
plt.show()
c.运行结果

这里运行5次。

鸢尾花数据集

鸢尾花数据集iris.csv是一个著名的统计学数据集,被机器学习研究者大量使用。它包含150组实例,4种生物特征和每组实例对应的鸢尾花种类(setosa,versicolor,virginica)。试对其进行分类,并给出分类结果(分类模型不限)。

实验过程

a.基本原理

要使用Python对鸢尾花数据集进行分类,首先需要导入必要的库,然后加载数据,拆分数据集,训练模型,并测试模型。在这项任务中,可以使用scikit-learn库中的决策树分类器作为示例。

b.程序源码
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
#加载数据
iris=load_iris()
X=iris.data
y=iris.target
#拆分数据集为训练集和测试集
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)
#创建决策树分类器并训练
clf=DecisionTreeClassifier()
clf.fit(X_train,y_train)
#在测试集上进行预测
y_pred=clf.predict(X_test)
#计算并打印分类精度
accuracy=accuracy_score(y_test,y_pred)
print(f"Accuracy:{accuracy}")
c.运行结果

结语

计算机是大脑的延伸,程序语言的发展没有止境,它会越来越高级智慧化,接近人的自然语言。

Python,此即智慧之殿堂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高科技雷龙王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值