⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d5r1.cpp

📁 这个是常用的数值算法用VC编写的。相信对大家有用哦。
💻 CPP
字号:
#include "iostream.h"
#include "math.h"

void eulsum(double& sum, double term, int jterm, double wksp[])
{
    static int nterm;
	double tmp,dum;
    if (jterm == 1)
	{
        nterm = 1;
        wksp[1] = term;
        sum = 0.5 * term;
	}
    else
	{
        tmp = wksp[1];
        wksp[1] = term;
        for (int j = 1; j<=nterm; j++)
		{
            dum = wksp[j + 1];
            wksp[j + 1] = 0.5 * (wksp[j] + tmp);
            tmp = dum;
        }
        if (fabs(wksp[nterm + 1]) <= fabs(wksp[nterm]))
		{
            sum = sum + 0.5 * wksp[nterm + 1];
            nterm = nterm + 1;
		}
        else
		{
            sum = sum + wksp[nterm + 1];
        }
    }
}

void main()
{
    //program d5r1
    //driver for routine eulsum
    int nval = 40;
	double x,sum,xpower,term;
    double wksp[40];
    //evaluate ln(1+x)=x-x^2/2+x^3/3-x^4/4... for -1<x<1
    cout<<endl;
    cout<<"how many terms in polynomial?"<<endl;
    //input mval , between 1 and 40, mval=0 to end
    int mval = 20;
    cout<<mval<<endl;
    if ((mval <= 0) || (mval > nval))
	{
		return;
	}
    cout<<"         x           actual      polynomial"<<endl;
    for (int i = -8; i<=8; i++)
	{
        x = i / 10.0;
        sum = 0.0;
        xpower = -1.0;
		cout.setf(ios::fixed|ios::right);
		cout.precision(6);
        for (int j = 1; j<=mval; j++)
		{
            xpower = -x * xpower;
            term = xpower / j;
            eulsum(sum, term, j, wksp);
        }
		cout.width(14);
        cout<<x;
		cout.width(14);
        cout<<log(1.0 + x);
		cout.width(14);
        cout<<sum<<endl;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -