方程近似求解C++

解决数学方程的C++程序实现
 

   看数学书看到的.居然还是某年的软考程序员下午题.很轻松地写出来了,挺有意思.

//	solveEquation.cpp -- 2011-07-19-01.05
#include <iostream>
#include <cmath>

double absoluteValue (const double valA, const double valB) ;
double equation (const double x) ;
double solveEquation (double (* pEquation) (const double x), const double leftEndian, const double rightEndian, const double precision) ;
double absoluteValue (const double vlaA, const double valB) ;

int main (void)
{
	double leftEndian = 2.0, rightEndian = 3.0 ;
	double precision = 0.01 ;
	
	std ::cout << "Result is : " << solveEquation(equation, leftEndian, rightEndian, precision) << std ::endl ;

	return 0 ;
}

double absoluteValue (const double valA, const double valB)
{
	if (valA > valB)
		return valA - valB ;
	else
		return valB - valA ;
}

double equation (const double x)
{
	return 3 - log10(x) ;
}

double solveEquation (double (* pEquation) (const double x), const double leftEndian, const double rightEndian, const double precision)
{
	double a = leftEndian, b = rightEndian ;
	double bisection ;

	do
	{
		bisection = (a + b) / 2 ;
		double tempValue = (* pEquation)(bisection) ;
		if ((* pEquation)(a) * tempValue < 0)
			b = bisection ;
		else if ((* pEquation)(b) * tempValue < 0)
			a = bisection ;
		else
			break ;
	}
	while (absoluteValue(a, b) >= precision)
		;

	return bisection ;
}
从键盘输入矩阵 从文本文件中输入矩阵(需要手动输入行列数) 矩阵相乘 求信息矩阵 求各精矿及尾矿的理论产率 习题第一题: 某选矿车间某班取样化验数据如表1,利用矿量平衡和金属平衡可以列出含四个方程的线性方程组,请利用行线性变换编程求出各精矿及尾矿的理论产率 求多项式回归的相关矩阵和模型参数,回归模型相对误差等 相对误差r3>0.1,在允许相对误差为0.1的情况下认为模型不合理 习题第六题 2 因变量y是自变量x的非线性函数,已得到实测数据见表2,假定y可以用x的3 次多项式近似表示,即y对x的多项式回归模型为 y=b0+b1x+b2x2+b3x3 请求出模型蚕数b0、b1、b2和b3,计算模型值ym与相对误差r%并填入表2中。 功能七:求方程组的解和系数矩阵的逆矩阵 习题第三题: 请用行线性变换求下面三元一次线性方程组的解和系数矩阵的逆矩阵。 功能8,求矛盾线性方程组的相关矩阵和解(最小二乘法) 习题第四题 在表1中增加两种组分的化验品位如表2,可以列出六个线性方程,显然是矛盾的方程 组,请用最小二乘法求精/尾矿产率的最小二乘解,并填入表2相应位置。 求多元线性回归模型的相关矩阵和模型参数 习题第五题: 对6个红薯品种的研究测定了比叶重、气孔密度、叶绿素含量和光合速率如表3,假定光合速率对比叶重、气孔密度、叶绿素含量有线性相关关系,即回归模型可以表示为 y=b0+b1*x1+b2*x2+b3*x3 求回归模型参数,并计算出模型值和相对误差填入表3中。 习题6和习题7 6. 矩阵类的load函数要求输入文本数据文件中数据的行列数,而从文本数据文件 无法直接判断数据文件中数据的行列数,除非先用其它方式打开来看才知道,很不方便。请修改load函数,使load函数能自动探测文本数据文件中数据的行列数,省去人工输入行列数。 7矩阵类中添加保存数据为文本数据文件的save()成员函数及相应菜单功能,保存数据前要输入文件名, 注意保存的格式要使原有的load函数能正确读取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值