C++ 数值计算

1、取绝对值
1.1<math>abs

原型:int abs(int _X);
功能:求整数的绝对值
头文件:math

1.2<math>fabs
原型:long double fabs(long double _X);
      float fabs(float _X);
功能:求浮点数的绝对值

2、数值和字符串转换
2.1<stdlib.h>strtol

原型:long strtol(const char * _Str, char ** _EndPtr, int _Radix );
功能:将字符串_Str按照进制_Radix转换成长整型。

2.2<stdlib.h>strtoul
原型:unsigned long strtoul(char * _Str, char ** _EndPtr, int _Radix);
功能:将字符串_Str按照进制_Radix转换成无符号长整型

2.3<stdlib.h>strtod
原型:double strtod(const char * _Str, char ** _EndPtr);
功能:将字符串转为浮点数。若_EndPtr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由
_EndPtr传回。

2.4<stdlib.h>_itoa_s
原型:errno_t _itoa_s(int _Value, char * _DstBuf, size_t _Size, int _Radix);
      errno_t _itoa_s(int _Value, char(&_Dest)[_Size], int _Radix);
功能:将数值转换成字符串
#include <iostream>
#include <string>

int main()
{
  int iNum1 = 0x10;
  char cBuffer1[64];
  _itoa_s(iNum1, cBuffer1, 16, 16);
  std::string strNum1(cBuffer1);
  return 0;
}


2.5<sstream>stringstream
功能:数值和字符串转换
/*字符串转换成数值*/
#include <iostream>
#include <string>
#include <sstream>

int main()
{
  std::string str1 = "123";
  std::stringstream ss1(str1);
  int num1;
  ss1>>num1;
  return 0;
}

/*数值转换成字符串*/
#include <iostream>
#include <string>
#include <sstream>

int main()
{
  int num2 = 123;
  std::stringstream ss2;
  ss2<<num2;
  std::string str2 = ss2.str();
  return 0;
}

2.6<stdio.h>sprintf_s
原型:int sprintf_s(_Out_z_bytecap_(_SizeInBytes) char * _DstBuf, _In_ size_t _SizeInBytes, 
_In_z_ _Printf_format_string_ const char * _Format, ...);
功能:将数值输出到一个char数组中
#include <iostream>
#include <string>

int main()
{
  int iNum = 0x12;
  char cTemp1[64];
  sprintf_s(cTemp1, 64, "%x", iNum);
  std::string strNum1(cTemp1);
  return 0;
}



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 矩阵运算1 1.1 实矩阵相乘1 1.2 复矩阵相乘4 1.3 一般实矩阵求逆8 1.4 一般复矩阵求逆13 1.5 对称正定矩阵的求逆18 1.6 托伯利兹矩阵求逆的特兰持方法21 1.7 求一般行列式的值25 1.8 求矩阵的秩29 1.9 对称正定矩阵的乔里斯基分解与行列式求值33 1.10 矩阵的三角分解36 1.11 一般实矩阵的QR分解41 1.12 一般实矩阵的奇异值分解46 1.13 求广义逆的奇异值分解法61 第2章 矩阵特征值与特征向量的计算75 2.1 求对称三对角阵的全部特征值与特征向量75 2.2 求实对称矩阵全部特征值与特征向量的 豪斯荷尔德变换法80 2.3 求赫申伯格矩阵全部特征值的QR方法88 2.4 求一般实矩阵的全部特征值95 2.5 求实对称矩阵特征值与特征向量的雅可比法102 2.6 求实对称矩阵特征值与特征向量的雅可比过关法109 第3章 线性代数方程组的求解115 3.1 求解实系数方程组的全选主元高斯消去法115 3.2 求解实系数方程组的全选主元高斯\|约当消去法119 3.3 求解复系数方程组的全选主元高斯消去法124 3.4 求解复系数方程组的全选主元高斯\|约当消去法129 3.5 求解三对角线方程组的追赶法135 3.6 求解一般带型方程组139 3.7 求解对称方程组的分解法146 3.8 求解对称正定方程组的平方根法151 3.9 求解托伯利兹方程组的列文逊方法155 3.10 高斯\|赛德尔迭代法161 3.11 求解对称正定方程组的共轭梯度法165 3.12 求解线性最小二乘问题的豪斯荷尔德变换法169 3.13 求解线性最小二乘问题的广义逆法175 3.14 求解病态方程组189 第4章 非线性方程与方程组的求解195 4.1 求非线性方程实根的对分法195 4.2 求非线性方程一个实根的牛顿法198 4.3 求非线性方程一个实根的埃特金迭代法201 4.4 求非线性方程一个实根的试位法204 4.5 求非线性方程一个实根的连分式法206 4.6 求实系数代数方程全部根的QR方法211 4.7 求实系数代数方程全部根的牛顿下山法216 4.8 求复系数代数方程全部根的牛顿下山法225 4.9 求非线性方程组一组实根的梯度法233 4.10 求非线性方程组一组实根的拟牛顿法238 4.11 求非线性方程组最小二乘解的广义逆法246 4.12 求非线性方程一个实根的蒙特卡洛法262 4.13 求实函数或复函数方程一个复根的蒙特卡洛法265 4.14 求非线性方程组一组实根的蒙特卡洛法269 第5章 插值与逼近274 5.1 Lagrange插值274 5.2 连分式插值277 5.3 埃尔米特插值281 5.4 埃特金逐步插值284 5.5 光滑插值288 5.6 第一种边界条件的三次样条函数插值、微商与积分294 5.7 第二种边界条件的三次样条函数插值、微商与积分301 5.8 第三种边界条件的三次样条函数插值、微商与积分307 5.9 二元Lagrange插值314 5.10 最小二乘曲线拟合319 5.11 切比雪夫曲线拟合326 5.12 最佳一致逼近的里米兹方法332 5.13 矩形域的最小二乘曲面拟合337 第6章 数值积分348 6.1 变步长梯形求积法348 6.2 变步长辛卜生求积法351 6.3 自适应梯形求积法353 6.4 龙贝格求积法356 6.5 计算一维积分的连分式法359 6.6 高振荡函数求积法363 6.7 勒让德-高斯求积法368 6.8 拉盖尔-高斯求积法371 6.9 埃尔米特-高斯求积法374 6.10 切比雪夫求积法376 6.11 计算一维积分的蒙特卡洛法379 6.12 变步长辛卜生二重积分法382 6.13 计算多重积分的高斯方法386 6.14 计算二重积分的连分式法391 6.15 计算多重积分的蒙特卡洛法395 第7章 常微分方程组的求解399 7.1 定步长欧拉方法399 7.2 变步长欧拉方法404 7.3 维梯方法409 7.4 定步长龙格-库塔方法414 7.5 变步长龙格-库塔方法419 7.6 变步长基尔方法424 7.7 变步长默森方法430 7.8 连分式法436 7.9 双边法444 7.10 阿当姆斯预报校正法450 7.11 哈明方法456 7.12 特雷纳方法463 7.13 积分刚性方程组的吉尔方法470 7.14 二阶微分方程边值问题的数值解法487 第8章 数据处理494 8.1 随机样本分析494 8.2 一元线性回归分析499 8.3 多元线性回归分析503 8.4 逐步回归分析510 8.5 半对数数据相关521 8.6 对数数据相关525第9章 极值问题的求解529 9.1 一维极值连分式法529 9.2 n维极值连分式法532 9.3 不等式约束线性规划问题538 9.4 求n维极值的单形调优法545 9.5 求约束条件下n维极值的复形调优法552 第10章 复数、多项式与特殊函数的计算562 10.1 复数运算562 10.2 实系数多项式的计算569 10.3 复系数多项式的计算574 10.4 特殊函数的计算581
本光盘是《计算机常用数值计算算法与程序 C++版》一书的配套光盘,盘中包括了书中所有的C++程序源代码文件,每个源程序文件的文件扩展名都使用.cpp形式。这些C++程序已经在微软公司Windows平台下的Virsual C++ 6.0环境下通过。盘中还包括由这些源程序在VC++6.0下生成的可执行文件(文件扩展名为.exe),以及由这些程序运行后产生的结果文件(文件扩展名为.dat)。另外,还包括若干类书中所介绍算法的头文件,由文件扩展名为.h和.inl所组成。 为了方便读者实际应用书中所介绍的算法程序,本光盘专门预创建了VC++6.0的工程,以每一章建立一个工程,一共有16个工程,对应着书中的16章。全部工程包含在一个目录(文件夹)——NumComp下,该目录下一共有17个子目录(文件夹),第一个到第十六个为每章所对应的工程文件夹,命名为ChapXX,XX表示01至16,如Chap05,表示为第五章的程序所建立了工程目录(文件夹),第17个目录(文件夹)名为include,其中存放了本书中算法程序需要的诸头文件。在前十六个目录(文件夹)中除存放了各章所介绍的算法示例C++源程序文件,还包括几个VC++6.0工程所需要的文件,读者可以不用去动它们。在每一个ChapXX目录(文件夹)下,还有一个目录(文件夹):debug,该目录(文件夹)中存放了ChapXX所对应的章中所有算法C++源程序生成的可执行文件和这些程序运行后生成的结果数据文件。除止之外,还有几个是VC++6.0工程所生成的文件,读者可以不用去动它们。 在每一个ChapXX目录(文件夹)下,包括一个这样的文件:ChapX.dsw,X表示1至16这16个阿拉伯数字之一,对应于这X章的工程。当进入到某一这样的目录(文件夹)中,用鼠标双击该文件名,就可以启动VC++6.0程序,并调用了该工程,这是最方便的一种启动VC++6.0的方法之一,下面就可以进行对C++程序的编辑、编译、连接、运行等工作了。具体的操作步骤,可以参阅有关VC++6.0的使用操作手册,或技术手册。 如果读者要自己另外建立VC++6.0的工程及相应的目录(文件夹),可以参阅VC++6.0的使用操作手册,也可阅读《计算机常用数值计算算法与程序 C++版》一书的第一章“概论”中的1.8节“Visual C++ 6.0的编译运行环境”,其中有详细说明。 最后注意,在VC++ 6.0中设置好路径,特别是include目录(文件夹)的路径,否则在编译时会出现找不到头文件的错误,使编译无法正常进行。具体的设置方法请参看本书第1章的相关内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值