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

📄 main.cpp

📁 研究生期间上《数值计算方法》课的作业
💻 CPP
字号:
#include <iostream>
#include <stdlib.h>
#include <math.h>
#define Nmax 100

using namespace std;

float F(double a)
{
    return pow(10.0,a)-2;
}

float F1(float a)
{
    return log10(a+2);
}

float Fn(float a)
{
    return a - (a-pow(10.0,(double)a) + 2)/(1-2.302585*pow(10,a));
}

int main(int argc, char *argv[])
{
    //X -10^X +2 = 0 => Xn = 10^Xn-1 -2
    int a = 0,b = 1;
    float e = 0.0001;
    float X0 = 0.5;
    float X ;
    
    for(int i=0; i<Nmax; i++)
    {
        X = F1(X0);
        if(fabs(X-X0)<e)
        {
            printf("方程的正根为:%5f\n",X);
            break;
        }
        X0 = X;
        if(i==Nmax-1) 
            printf("迭代不收敛!\n");
    }
    
    X0 = -1.0;
    for(int i=0; i<Nmax; i++)
    {
        X = F(X0);
        if(fabs(X-X0)<e)
        {
            printf("方程的负根为:%5f\n",X);
            break;
        }
        X0 = X;
        if(i==Nmax-1) 
            printf("迭代不收敛!\n");
    }
    
    printf("Newton--------------------------\n");
    X0 = 0.5;
    for(int i=0; i<Nmax; i++)
    {
        X = Fn(X0);
        if(fabs(X-X0)<e)
        {
            printf("方程的负根为:%5f\n",X);
            break;
        }
        X0 = X;
        if(i==Nmax-1) 
            printf("迭代不收敛!\n");
    }
    
    X0 = -1.0;
    for(int i=0; i<Nmax; i++)
    {
        X = Fn(X0);
        if(fabs(X-X0)<e)
        {
            printf("方程的负根为:%5f\n",X);
            break;
        }
        X0 = X;
        if(i==Nmax-1) 
            printf("迭代不收敛!\n");
    }
    
    system("PAUSE");	
    return 0;
}

⌨️ 快捷键说明

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