【C++练习】利用泰勒级数近似计算正弦函数平方和

题目:

利用泰勒级数近似计算正弦函数平方和

问题描述

编写一个程序,利用泰勒级数(Taylor series)近似计算给定角度(弧度制)的正弦函数值,并进一步计算两个角度正弦值的平方和。泰勒级数展开式是数学中一种重要的无穷级数,可以用来近似许多常见函数,包括正弦函数。

程序要求

  1. 定义一个函数 sin_approx(double x),该函数使用泰勒级数展开式近似计算并返回角度 x 的正弦值。在近似计算中,当新增项的绝对值小于 10−10 时停止累加。

  2. 在 main 函数中,提示用户输入两个浮点数 r 和 s,分别代表两个角度(弧度制)。

  3. 使用 sin_approx 函数计算角度 r 和 s 的正弦值,并计算它们的平方和。

  4. 输出结果,保留十位小数,格式为:k = sin^2(r) + sin^2(s) ≈ 结果

源代码:

#include <iostream>  
#include <cmath>  
#include <iomanip>  
using namespace std;

double sin_approx(double x) {
    double sum = 0.0;
    double term = x;
    int n = 1;

    while (fabs(term) > 1e-10) {
        sum += term;
        term *= (-1) * x * x / ((2 * n - 1) * (2 * n));
        n++;
    }

    return sum;
}

int main() {
    double r, s;
    cout << "请输入r的值: ";
    cin >> r;
    cout << "请输入s的值: ";
    cin >> s;

    double result = sin_approx(r) * sin_approx(r) + sin_approx(s) * sin_approx(s);
    cout << fixed << setprecision(10);
    cout << "k = sin^2(" << r << ") + sin^2(" << s << ") ≈ " << result << endl;

    return 0;
}

运行截图:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值