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

📄 d1r6.cpp

📁 数值计算c++源代码,包括各种算法。很有用的。
💻 CPP
字号:
#include "iostream.h"
#include "math.h"

void vander(double x[], double w[], double q[], int n)
{
    const int nmax = 100;
    double zero = 0.0;
    double one = 1.0;
    double c[100];
	int i,j,k,k1;
	double xx,t,b,s;
    if (n == 1)
	{
        w[1] = q[1];
	}
    else
	{
        for (i = 1; i<=n; i++)
		{
            c[i] = zero;
        }
        c[n] = -x[1];
        for (i = 2; i<=n; i++)
		{
            xx = -x[i];
            for (j = n + 1 - i; j<=n-1; j++)
			{
                c[j] = c[j] + xx * c[j + 1];
            }
            c[n] = c[n] + xx;
        }
        for (i = 1; i<=n; i++)
		{
            xx = x[i];
            t = one;
            b = one;
            s = q[n];
            k = n;
            for (j = 2; j<=n; j++)
			{
                k1 = k - 1;
                b = c[k] + xx * b;
                s = s + q[k1] * b;
                t = xx * t + b;
                k = k1;
            }
            w[i] = s / t;
        }
    }
}

void main()
{
    //program d1r6
    //driver program for routine vander
    int i, j, n = 5;
    double x[6], q[6], w[6], term[6];
	double sum1;
    //输入已知的方程组的系数矩阵的x
    x[1] = 1.0; x[2] = 1.5; x[3] = 2.0; x[4] = 2.5; x[5] = 3.0;
    //输入已知的方程组的右端向量b
    q[1] = 1.0; q[2] = 1.5; q[3] = 2.0; q[4] = 2.5; q[5] = 3.0;
    cout<<"已知的方程组的右端向量"<<endl;
	cout.setf(ios::fixed|ios::right);
	cout.precision(5);
    cout<<"       "<<q[1]<<endl;
    cout<<"       "<<q[2]<<endl;
    cout<<"       "<<q[3]<<endl;
    cout<<"       "<<q[4]<<endl;
    cout<<"       "<<q[5]<<endl;
    vander(x, w, q, n);
    //输出方程组的解w
    cout<<endl;
    cout<<" 计算出的方程组的的解"<<endl;
	cout.width(15);
    cout<<w[1]<<endl;
	cout.width(15);
    cout<<w[2]<<endl;
	cout.width(15);
    cout<<w[3]<<endl;
	cout.width(15);
    cout<<w[4]<<endl;
	cout.width(15);
    cout<<w[5]<<endl;
    //将计算出的解乘以系数矩阵,以验证计算结果正确
    cout<<endl;
    cout<<"将计算出的解乘以系数矩阵,以验证计算结果正确"<<endl;
    cout<<endl;
    cout<<"解乘以系数矩阵     方程组的右端向量"<<endl;
    sum1 = 0;
    for (i = 1; i<=n; i++)
	{
        term[i] = w[i];
        sum1 = sum1 + w[i];
    }

    cout<<"   "<<sum1<<"             "<<q[1]<<endl;
    for (i = 2; i<=n; i++)
	{
        sum1 = 0;
        for (j = 1; j<=n; j++)
		{
           term[j] = term[j] * x[j];
           sum1 = sum1 + term[j];
        }
        cout<<"   "<<sum1<<"             "<<q[i]<<endl;
    }
}

⌨️ 快捷键说明

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