1 / 5
文档名称:

数值分析实验报告(分法求利率).doc

格式:doc   大小:70KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数值分析实验报告(分法求利率).doc

上传人:luciferios08 2017/9/10 文件大小:70 KB

下载得到文件列表

数值分析实验报告(分法求利率).doc

文档介绍

文档介绍:《数值分析》
课程实验报告

项目名称:
二分法求年利率
学生姓名:
**
学生学号:
*****
指导教师:
***
完成日期:
****年**月**日
【实验内容与要求】
每个月存250元,并持续20年,希望在20年后本金和利息的总值达到250000元。年利率x为多少时可以满足需求?
【算法说明】
1. 将方程简化,然后用二分法逼近方程的根,从而求解。
2. 二分法求解思想
方程 f(x)=0在区域【a,b】内求解
计算端点的值f(a),f(b);
计算f(x)在区间中点(a+b)/2处的值,即的值;
若则(a+b)/2就是方程的根,计算过程结束,否则继续检验:
若,则以(a+b)/2代替b,否则以(a+b)/2代替a.
反复执行步骤B,C直到区间【a,b】的长度小于允许误差ε,此时中点(a+b)/2即为所有近似根。
【源程序】
程序1(ps:二分法)
#include <>
#include <>
//float p;
//int n;
int m=250000;
void main()
{
float x,x1=0,x2=1;
float p;
int n;
float F(float x,float x1,float x2);
printf("请输入每个月存入的金额p和存款年份n的值:\n");
scanf("%f%d",&p,&n);
printf("x=%f\n",F(x,x1,x2));
}
float F(float x,float x1,float x2)
{
float f,f1,f2;
float p;
int n;
do
{
f1=(p*12/x1)*(pow((1+x1/12),n*12)-1)-m;
f2=(p*12/x2)*(pow((1+x2/12),n*12)-1)-m;
}while(f1*f2>0); //确保输入的x1,x2使得f1,f2符号相反
do
{
x=(x1+x2)/2; //求x1,x2的中点
f=(p*12/x)*(pow((1+x/12),n*12)-1)-m;
if(f1*f>0) //当f与f1符号相同时
{
x1=x;f1=f;
}
else if(f2*f>0) //当f与f2符号相同时
{
x2=x;f2=f;
}
}while(fabs(f)>1e-6); //判断条件fabs(f)>1e-6的意思是f的值趋于0
return x;
}
程序2(ps:程序二是根据题意及结果分析直接写的代码,并没有用二分法)
#include<iostream>
#include <>
using namespace std;
double su