educoder5-5Python 计算思维训练——数组和曲线绘制练习(一)

这个系列涵盖了使用Python进行数学函数的计算与绘图,包括使用函数值填充列表、循环与向量化填充数组、绘制二维函数图形、函数作用于向量以及手动模拟执行向量表达式。示例中使用了numpy和matplotlib等库,展示了在数值计算和科学可视化中的基本操作。
摘要由CSDN通过智能技术生成

第1关:使用函数值填充列表

import math
import numpy as np
from math import *
class Solution:
    def solve(self, s, e):
        """
        :type s, e: int, int
        :rtype: list
        """
        #请在此按照“编程要求”填写代码
        #********** Begin *********#
        xlist=[]
        d=(e-s)/40.0
        a=[i for i in np.arange(s,e+0.000001,d)]
        for x in a:
            hx=(1/math.sqrt(2*math.pi))*math.exp(x*x*(-1/2))
            xlist.append(hx)

        return xlist
        ##********** End **********#
       

第2关:填充数组(循环版本)

import numpy as np
import math
class Solution:
        def solve(self, s, e):
                """
                :type s, e: int, int
                :rtype: numpy.ndarray
                """
                #请在此按照“编程要求”填写代码
                #********** Begin *********#
                xlist = np.zeros(41)
                ylist = np.zeros(41)
                for i in range(41):
                        xlist[i]=s+i*(e - s)/40
                        ylist[i]=1/np.sqrt(2*np.pi)*np.exp(-0.5*xlist[i]**2)
                return ylist
                ##********** End **********#

第3关:填充数组(向量化版本)

import numpy as np
import math

class Solution:
    def solve(self, s, e):
        """
        :type s, e: int, int
        :rtype xlist, ylist: numpy.array, numpy.array
        """
        #请在此按照“编程要求”填写代码
        #********** Begin *********#
        xlist=np.linspace(s, e, 41)
        ylist=1/np.sqrt(2*np.pi)*np.exp(-0.5*xlist**2)

        return xlist,ylist
        ##********** End **********#

第4关:绘制函数

import numpy as np
import math
import matplotlib.pyplot as plt
class Solution:
    def solve(self, s, e):
        """
        :type s, e: int, int
        :rtype: None
        """
        #请在此按照“编程要求”填写代码
        #********** Begin *********#
        x = np.linspace(s, e, 41)
        y=1/np.sqrt(2*np.pi)*np.exp(-0.5*x**2)
        plt.plot(x,y)
        plt.show()
        ##********** End **********#
        plt.savefig("step4/stu_img/student.png")

第5关:函数作用于向量

import numpy as np
import math
class Solution:
    def solve_1(self, v):
        """
        :type v: list
        :rtype: list
        """
        #请在此按照“编程要求”填写代码
        #********** Begin *********#
        def f(x):
            return x**3+x*math.exp(x)+1
        y = [f(a) for a in v]
        return y
        ##********** End **********#
       
    def solve_2(self, v):
        """
        :type v: list
        :rtype: numpy.array
        """
        #请在此按照“编程要求”填写代码
        #********** Begin *********#
        xlist = np.array(v)
        ylist = xlist**3+xlist*np.exp(xlist)+1
        return ylist
        ##********** End **********#

第6关:手工模拟执行向量表达式

import numpy as np
import math
class Solution:
    def solve_1(self, x, t):
        """
        :type x, t: list, list
        :rtype: list
        """
        #请在此按照“编程要求:使用math库实现”填写代码
        #********** Begin *********#
        y=[]
        def f(a,b):
            return np.cos(np.sin(a))+np.exp(1/b)
        for k in range(0,len(x)):
            y.append(f(x[k],t[k]))
        return y

        ##********** End **********#
        
    def solve_2(self, x, t):
        """
        :type x, t: list, list
        :rtype: numpy.array
        """
        #请在此按照“编程要求:使用numpy库实现”填写代码
        #********** Begin *********#
        xlist=np.array(x)
        tlist=np.array(t)
        y_1=np.cos(np.sin(xlist))+np.exp(1/tlist)
        return y_1
        ##********** End **********#
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值