首页 > 编程语言 >python 计算 sin 值

python 计算 sin 值

时间:2024-11-01 11:32:20浏览次数:4  
标签:angle python epsilon custom 弧度 计算 sin math

概述

当角(弧度描述)x足够小时,sin(x)约等于x,而已知三角等式sin(x) = 3 sin(x/3) - 4 sin^3(x/3) ,用 python 语言计算任意大的弧度角的sin值

实现

可以利用给定的三角恒等式

[
\sin(x) = 3 \sin\left(\frac{x}{3}\right) - 4 \sin^3\left(\frac{x}{3}\right)
]

来递归地计算任意弧度角的正弦值。当 ( x ) 足够小时,可以直接近似 ( \sin(x) \approx x )。我们可以设定一个小的阈值,当 ( x ) 小于这个阈值时,直接返回 ( x ) 的近似值,否则使用公式递归求解。

下面是使用 Python 实现该算法的代码:

import math

def sin_custom(x, epsilon=1e-6):
    # 当 x 足够小时,使用近似 sin(x) ≈ x
    if abs(x) < epsilon:
        return x
    # 使用递归公式计算 sin(x)
    else:
        sin_x_div_3 = sin_custom(x / 3, epsilon)
        return 3 * sin_x_div_3 - 4 * sin_x_div_3 ** 3

# 测试
angle = 10  # 任意大的弧度角
print(f"sin({angle}) ≈ {sin_custom(angle)}")
print(f"math.sin({angle}) = {math.sin(angle)}")  # 用 math.sin 比较

解释

  1. epsilon 是一个小值,用于判断 ( x ) 是否足够小以直接使用近似值 ( \sin(x) \approx x )。
  2. 当 ( x ) 大于 epsilon 时,利用公式递归计算 ( \sin(x) )。
  3. 最终输出递归计算的结果,并用 math.sin 比较结果。

标签:angle,python,epsilon,custom,弧度,计算,sin,math
From: https://www.cnblogs.com/litifeng/p/18519820

相关文章

  • 使用wxpython开发跨平台桌面应用,对wxpython控件实现类似C#扩展函数处理的探究
    本人之前对C#开发非常喜欢,也从事开发C#开发桌面开发、Web后端、Vue前端应用开发多年,最近一直在研究使用Python,希望能够把C#的一些好的设计模式、开发便利经验引入到Python开发中,很多时候类似的开发方式,可以极大提高我们开发的效率,本篇随笔对wxpython控件实现类似C#扩展函数处理的......
  • 【含文档+PPT+源码】基于Python校园跑腿管理系统设计与实现
    项目介绍本课程演示的是一款基于Python校园跑腿管理系统设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该项目附带的源码资料可作为......
  • Springboot计算机毕业设计高速公路联网收费系统13z1s
    Springboot计算机毕业设计高速公路联网收费系统本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,业务员,收费路段,收费类型,缴费信息开题报告内容一、项目背景随着高速公路网络的不断扩展和交......
  • Springboot计算机毕业设计高校仪器管理系统zr0a9
    Springboot计算机毕业设计高校仪器管理系统zr0a9本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,仪器类型,仪器信息,仪器借用,仪器归还,学院,仪器报修,仪器维修,仪器报废开题报告内容一、选题......
  • Springboot计算机毕业设计工业大学医务室管理系统n2t8c
    Springboot计算机毕业设计工业大学医务室管理系统本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:学生,教师,科室名称,医生,预约信息,取消预约,开药信息,缴费信息,药品信息,药品入库,药品出库,出诊......
  • 【粒子群优化算法】基于Schwefel‘s P2.21函数的PSO算法变体性能分析(附完整算法Python
    基于Schwefel'sP2.21函数的PSO算法变体性能分析(附完整算法Python代码)摘要1.引言1.1研究目的2.算法与测试函数2.1Schwefel'sP2.21函数2.2PSO算法变体2.2.1标准PSO(SPSO)2.2.2自适应PSO(APSO)2.2.3改进的带变异PSO(IPSOM)2.2.4混合PSO(HPSO)3.实验设计3.......
  • java+vue计算机毕设高校毕业生就业管理系统的设计与实现【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高等教育的普及和毕业生人数的逐年攀升,高校毕业生就业问题已成为社会各界关注的焦点。传统的就业管理模式在信息处理、资源匹配及效率提升方面已......
  • 【Python实例】hdf文件简介及基于Python导入hdf文件
    【Python实例】hdf文件简介及基于Python导入hdf文件.hdf文件概述hdf工具-HDFView基于Python导入hdf文件实例1:判断是否为hdf文件实例2:打开并读取hdf4文件(地面反照率数据)实例3:绘制图形(地面反照率数据)参考HDF(HierarchicalDataFormat)是一种用于存储和组织大量数据的文......
  • python使用魔法函数__getitem__实现字典和列表式访问自定义类型
    起因想起C++可以实现运算符重载,以实现以数组的方式([])访问我们的类.我想要实现一个类,可以同时用类似于字典和就想到python能不能实现这个效果,而且显然是可以的,不然numpy是怎么实现属于自己的数组的?#期望实现效果classmyclass: passc=myclass()#像这样使用[]访......
  • Autodesk AutoCAD 2025.1 (macOS, Windows) - 自动计算机辅助设计软件
    AutodeskAutoCAD2025.1(macOS,Windows)-自动计算机辅助设计软件AutoCAD2024开始原生支持AppleSilicon请访问原文链接:https://sysin.org/blog/autodesk-autocad/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org具有设计自动化以及工具组合、Web和移动应......