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

📄 min_sec.cpp

📁 这是一个模型系统辨识的源代码
💻 CPP
字号:
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;


class Item
{
public:
    get_data();
    double dX;
    double dY;
};
//--------------------------------------------------------------------
class Experiment
{
public:
    Experiment();
    void calculator();
    void display();
    ~Experiment();
private:
    double A;                        
    Item *Result;
    int length;
};
//--------------------------------------------------------------------
Item :: get_data()
{
    cout << "Please enter the experiment data." << endl;
    cout << "Please enter the X:" << endl;
    cin >> dX;
    cout << "Please enter the Y." << endl;
    cin >> dY;
}
//--------------------------------------------------------------------
Experiment :: Experiment()
{
    cout << "请输入数据的组数,就是有多少组数据:" << endl;
    cin >> length;
    const int _number = length;
    Result = new Item[_number];
    //对子对象的赋值
    for(int counter = 0; counter < _number; ++counter)
    {
        Result[counter].get_data();
    }

}
//--------------------------------------------------------------------
//************以下是线性回归的模块*****************************//
void Experiment :: calculator()
{
    const int _n = length;
    double *X_1 = new double[_n];                     
    double *Y_1 = new double[_n];                
    {
        T_1[counter_1] = Result[counter_1].dT;
        R_1[counter_1] = Result[counter_1].dR;
    }                            
                
    //以下是线性回归的实现
         double middle_1 = 0;
    double middle_2 = 0;
    double middle_3 = 0;
    double middle_5 = 0;
    double number = double(_n);
    for(int counter_2 = 0; counter_2 < number; ++counter_2)        
    {
    middle_1 += (X_1[counter_2] / number);
    middle_2 += (Y_1[counter_2] / number);
    middle_3 += (X_1[counter_2] * Y_1[counter_2]) / number;
    middle_5 += (X_1[counter_2] * X_1[counter_2]) / number;
    }

    double middle_4 = (middle_1 * middle_1);
    double final_one = ((middle_1 * middle_2 - middle_3)
                             / (middle_4 - middle_5));
    A = final_one;                        //A表示斜率

         delete [] X_1;
    delete [] Y_1;
    cout << "Calculator had been called." << endl;
}
//--------------------------------------------------------------------
void Experiment :: display()
{
    cout << "The A which is resolved by this Experiment is :" << endl;
    cout << "-----------------" <<endl;
    cout << "-------" << setw(6) << A << "------" <<endl;
    cout << "-----------------" <<endl;
}
//--------------------------------------------------------------------
Experiment ::~Experiment()
{
    delete Result;
}
//--------------------------------------------------------------------
int main()
{
    Experiment Careful;
    Careful.calculator();
    Careful.display();
    return 0;
}
//--------------------------------------------------------------------

⌨️ 快捷键说明

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