> # ♻️ 资源
> **大小:** 1.60MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010739**](https://www.yuque.com/sxbn/ks/100010739)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87430273**](https://download.csdn.net/download/s1t16/87430273)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 数值分析
## 一、需求分析
本次大作业需要求解 sin(x),x 的取值范围是任意的,需要保证算法能精确到小数点后 4 位,需要对运算结果进行误差分析,包括方法误差和舍入误差。根据分析得到误差确定迭代次数等。
## 二、逼近法
### 2.1 算法原理
由于 sin( + 2) = sin() , = ±1, ±2, …,首先将 x 归到[0,2]区间内,0 ∈,2], () = (0)。之后使用泰勒展开来逼近 sin(0),多项式项数足够高时即可满足精度:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218562315-5393c488-9eec-4b4a-a16d-b1e17273e7d5.png#averageHue=%23000000&from=url&id=nGlXE&originHeight=107&originWidth=578&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
比如用前 k 项来近似(0) = sin( 0)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218562392-f9e6ed57-38a3-4620-bc76-257eb40a0210.png#averageHue=%23000000&from=url&id=YcZ3v&originHeight=116&originWidth=890&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
## 2.2 误差分析
方法误差
假设用泰勒展开的前 k 项来近似 sin()
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218562445-c395b119-0e71-4ad2-90fb-b676b1205399.png#averageHue=%23000000&from=url&id=JwLxl&originHeight=279&originWidth=1355&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
其中, ∈ [0, ],方法误差:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218562499-b9e14bb5-e984-45f3-9925-fd6d7113e4e9.png#averageHue=%23000000&from=url&id=PBsoM&originHeight=122&originWidth=806&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
存储误差
假设所有数据都用小数点后 m 位的变量来存储(实际编程中用 double 型变量)。
首先,将 x 归一化过程中可能需要加减, 所以 0 可能会带来误差,
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218562563-13cd09a2-987c-4a2a-a58d-9f7c739c8df3.png#averageHue=%23000000&from=url&id=fPHix&originHeight=73&originWidth=191&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
,误差:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218562645-8887161c-9fea-4019-b638-32de064e874d.png#averageHue=%23000000&from=url&id=pcCvA&originHeight=172&originWidth=782&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
for 循环运算过程中,的每次计算结果的赋值也可能产生存储误差
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218562697-8fe0224d-e4f5-4c72-9617-f0fff42e8e31.png#averageHue=%23000000&from=url&id=GTw4Q&originHeight=99&originWidth=574&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218562744-e0d4ae91-2c41-4bce-9c79-67488c2663a7.png#averageHue=%23000000&from=url&id=pNgPo&originHeight=173&originWidth=1015&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
总误差:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218562873-7536cf00-cf3a-4724-b3b5-2fa2d8645966.png#averageHue=%23000000&from=url&id=PW53j&originHeight=172&originWidth=1565&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
其中,m 为变量的存储位数,double 型变量的 m 一般为 15。由于当 n 足够大时,(2 + 1)! 2+1,所以能达到任意精度。
0 越大,总误差越大,所以考虑 0 = 2 的情况。
取 k=11,得= . × ,符合要求。
## 三、常微分方程
### 3.1 算法原理
得出方程
由于 sin( + ) = (1) sin() , = ±1, ±2, …,首先将 x 归到
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218562974-fd5e7bc1-4ca1-4403-a831-5f73570b4d83.png#averageHue=%23000000&from=url&id=F2pKd&originHeight=69&originWidth=136&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
区间内,1 ∈
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218563038-06059d98-165c-4ed6-825e-be1c2c1c9e82.png#averageHue=%23000000&from=url&id=Eaj5R&originHeight=68&originWidth=621&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
。再将 1 化为
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218563151-61265ab5-92b1-41f4-a695-86454d1b00a9.png#averageHue=%23000000&from=url&id=D7CG6&originHeight=68&originWidth=143&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
(为了使 f 的导数有范围),0 ∈
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218563204-8af599d6-5e0b-409d-8fef-63e0d6a178ab.png#averageHue=%23000000&from=url&id=vdTPZ&originHeight=68&originWidth=136&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
,求出(0)后用倍角公式求出()。因为
#### 3.1.1 sin2(0) + cos2(0) = 1
且′() = cos(),设() = sin(),所以在
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218563257-f7cfe107-80cd-4ca2-8f1e-2b0a4744e3f6.png#averageHue=%23000000&from=url&id=QlbKP&originHeight=69&originWidth=220&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
区间内:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218563309-3afd420b-b211-4e9a-a98e-c2e54ebd50ce.png#averageHue=%23000000&from=url&id=i05Oo&originHeight=59&originWidth=394&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
欧拉公式
设
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218563360-13f8c469-537a-44cd-9f4c-06ff30663673.png#averageHue=%23000000&from=url&id=Rt7Jt&originHeight=60&originWidth=1040&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
。将 0 到 0 的区间划分成 t
份,
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218563439-53242b01-3367-4cd9-9fad-3cfc8bb5d4f3.png#averageHue=%23000000&from=url&id=xvgab&originHeight=68&originWidth=122&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
。使用公式:
### 3.1.2 +1 = + (, )
迭代计算 y,直到 n=t,sin(0) = 。再用倍角公式求出
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218563515-037b1853-b939-4fd0-a336-d675ac26162c.png#averageHue=%23000000&from=url&id=ZaQEP&originHeight=60&originWidth=755&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
- 开根号
- 由于运算过程中用到开根号运算,所以需要用方程求根的方法计算。
- 为了计算
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218563582-a8dc2aef-35f1-4dc4-ba16-917117deeeb2.png#averageHue=%23000000&from=url&id=ZHkBv&originHeight=80&originWidth=503&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
,通过 +1 = φ(xk)的方式迭代计算
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715218563639-6f3bf32d-8cea-4e1e-ad08-ca3bfff0fef0.png#averageHue=%23000000&from=url&id=a61IP&originHeight=60&originWidth=60&originalType=binary&ratio=1&rotation=0&showTit
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010739 本次大作业需要求解 sin(x),x 的取值范围是任意的,需要保证算法能精确到小数点后 4 位,需要对运算结果进行误差分析,包括方法误差和舍入误差。根据分析得到误差确定迭代次数等。
资源推荐
资源详情
资源评论
收起资源包目录
100010739-基于C#实现(WinForm)求解SIN(X)数值分析.zip (40个子文件)
calculating
LICENSE 1KB
报告.pdf 1.22MB
README.md 29KB
可执行程序
num_BH2.exe 15KB
num_BH2.exe.config 184B
num_BH2.pdb 28KB
code
.vs
num_BH2
v15
.suo 57KB
Server
sqlite3
storage.ide-shm 32KB
storage.ide 576KB
storage.ide-wal 3.94MB
db.lock 1024B
DesignTimeBuild
.dtbcache 178B
num_BH2.sln 1KB
num_BH2
Form1.Designer.cs 12KB
num_BH2.csproj 3KB
App.config 184B
Form1.cs 8KB
obj
Debug
num_BH2.exe 15KB
TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs 1024B
TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs 1024B
num_BH2.csprojAssemblyReference.cache 11KB
num_BH2.Properties.Resources.resources 180B
num_BH2.csproj.FileListAbsolute.txt 2KB
DesignTimeResolveAssemblyReferencesInput.cache 7KB
num_BH2.csproj.CoreCompileInputs.cache 41B
TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs 1024B
num_BH2.Form1.resources 180B
num_BH2.csproj.GenerateResource.cache 1012B
DesignTimeResolveAssemblyReferences.cache 1KB
num_BH2.pdb 30KB
bin
Debug
num_BH2.exe 15KB
num_BH2.exe.config 184B
num_BH2.pdb 30KB
Properties
Resources.Designer.cs 3KB
Settings.Designer.cs 1KB
Settings.settings 242B
AssemblyInfo.cs 1KB
Resources.resx 5KB
Program.cs 497B
Form1.resx 6KB
共 40 条
- 1
资源评论
神仙别闹
- 粉丝: 2680
- 资源: 7667
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功