牛顿迭代法求方程根和最佳存款方案

发布时间 2023-04-13 12:09:54作者: 不如喝点

牛顿迭代法求方程根:

解题思路:输入a,b,c,d,定义变量储存f(x0)和f’(x0),给x0取一个在1附近的初值,利用do while语句来实现条件,当符合结束条件时输出x。

代码:

#include<iostream>

#include<iomanip>

#include<cmath>

using namespace std;

double qiu(int a,int b,int c,int d)//设计函数求出x的值

{

    double x0,x=1.5,f1,f2;

    do

    {

        x0=x;

        f1=a*x0*x0*x0+b*x0*x0+c*x0+d;

        f2=3*a*x0*x0+2*b+x0+c;

        x=x0-f1/f2;

    }while(abs(x-x0)>=1e-5);

    return x;

}

int main()

{

    int a,b,c,d;

    cin>>a>>b>>c>>d;

    double x=qiu(a,b,c,d);

    cout<<"所求方程的根为x=:"<<x<<endl;

return 0;

}

该题体会:不是所有时候都用while循环,有时候根据题意使用do while循环可以取得更好的效果

 

 

最佳存款方案:

假设银行一年整存零取的月息为0.63%.现在某人手中有一笔钱,他打算在今后的5年中的每年年底取出1000元,到第5年刚好取完,请算出他存钱应存入多少。

由题意分析可得:

解题思路:利用for循环计算每一年年初存款

代码:

#include<iostream>

using namespace std;

 

int main()

{

    int i;

    double y=0.0;

    for(i=0;i<5;i++)

    {

        y=(y+1000)/(1+12*0.0063);

    }

    cout<<"应存入的钱数为:"<<y<<endl;

    return 0;

}