常用算法程序集(c/c++)笔记(一)

(一)一维多项式求值

书本中是采用C编写的代码,在此修改为C++,并在visual studio 2017 community 下调试程序

Plvy.c程序

#include "stdafx.h" //visual studio 2017中的头文件
#include "stdio.h"
double plyv(double a[], int n, double x)
{
    int i;
    double u;
    u = a[n - 1];
    for (i = n - 2; i >= 0; i--)
        u = u*x + a[i];
    return (u);
}  //求值函数,主要思想是迭代
int main()
{
    int i;
    double a[7] = { -20.0,7.0,-7.0,-1.0,3.0,-5.0,2.0 };
    double x[2] = { 0.9,-0.9 };
    printf("\n");
    for (i = 0; i <= 1; i++)
        printf("x(%d)=%5.21f p(%d)=%13.7e\n)", i, x[i], i, plyv(a, 7, x[i])); //查找C的输出格式
    printf("\n");
}

Plvy.cpp 程序

#include "stdafx.h"
#include <iostream>
using namespace std;
double plyv(double a[], int n, double x)
{
	int i;
	double u;
	u = a[n - 1];
	for (i = n - 2; i >= 0; i--)
		u = u*x + a[i];
	return (u);
}  //求值函数,主要思想是迭代
int main()
{
	int i;
	double a[7] = { -20.0,7.0,-7.0,1.0,3.0,-5.0,2.0 };
	double x[6] = { 0.9,-0.9,1.1,-1.1,1.3,-1.3 };
	for (i = 0; i <= 5; i++)
		cout <<"x"<<"("<<i<<")"<<"="<< x[i] <<"\t"<<"p"<< "(" << i << ")" <<"="<< plyv(a, 7, x[i]) << endl;
	return (0);
}

主要还是不习惯C的输出格式,这里改为C++的输出格式

(二)总结与提升

在改为C++的输出时,开始不知道怎么输出括号,后来想括号也是字符,所以输出字符就行,左括号与右括号分别用双引号,中间夹着i,代码如下

cout <<"x"<<"("<<i<<")"<<"="<< x[i] <<"\t"<<"p"<< "(" << i << ")" <<"="<< plyv(a, 7, x[i]) << endl;



相关推荐
本书是针对工程中常用的行之有效的算法而编写的,主要内容包括多项式的计算、复数运算、随机数的产生、矩阵运算、矩阵特征值与特征向量的计算、线性代数方程组的求解、非线性方程与方程组的求解、插值与逼近、数值积分、常微分方程组的求解、数据处理、极值问题的求解、数学变换与滤波、特殊函数的计算、排序、查找等。 书中所有的算法程序均用C/C++描述,可从清华大学出版社网站(www.tup.com.cn)下载。 本书可供广大科研人员、工程技术人员及管理工作者阅读使用,也可作为高等院校师生的参考书。 第1章 多项式计算 1 1.1 维多项式求值 1 1.2 维多项式多组求值 2 1.3 二维多项式求值 5 1.4 复系数多项式求值 6 1.5 多项式相乘 8 1.6 复系数多项式相乘 9 1.7 多项式相除 11 1.8 复系数多项式相除 13 1.9 实系数多项式类 16 1.10 复系数多项式类 21 第2章 复数运算 29 2.1 复数乘法 29 2.2 复数除法 30 2.3 复数乘幂 31 2.4 复数的n次方根 32 2.5 复数指数 34 2.6 复数对数 35 2.7 复数正弦 36 2.8 复数余弦 37 2.9 复数类 39 第3章 随机数的产生 44 3.1 产生0~1之间均匀分布的个随机数 44 3.2 产生0~1之间均匀分布的随机数序列 45 3.3 产生任意区间内均匀分布的个随机整数 46 3.4 产生任意区间内均匀分布的随机整数序列 48 3.5 产生任意均值与方差的正态分布的个随机数 49 3.6 产生任意均值与方差的正态分布的随机数序列 50 第4章 矩阵运算 53 4.1 实矩阵相乘 53 4.2 复矩阵相乘 54 4.3 般实矩阵求逆 57 4.4 般复矩阵求逆 60 4.5 对称正定矩阵的求逆 65 4.6 托伯利兹矩阵求逆的特兰持方法 68 4.7 求般行列式的值 72 4.8 求矩阵的秩 74 4.9 对称正定矩阵的乔里斯基分解与行列式求值 76 4.10 矩阵的三角分解 78 4.11 般实矩阵的QR分解 81 4.12 般实矩阵的奇异值分解 85 4.13 求广义逆的奇异值分解法 98 第5章 矩阵特征值与特征向量的计算 102 5.1 约化对称矩阵为对称三对角阵的豪斯荷尔德变换法 102 5.2 求对称三对角阵的全部特征值与特征向量 106 5.3 约化般实矩阵为赫申伯格矩阵的初等相似变换法 110 5.4 求赫申伯格矩阵全部特征值的QR方法 112 5.5 求实对称矩阵特征值与特征向量的雅可比法 118 5.6 求实对称矩阵特征值与特征向量的雅可比过关法 124 第6章 线性代数方程组的求解 128 6.1 求解实系数方程组的全选主元高斯消去法 128 6.2 求解实系数方程组的全选主元高斯-约当消去法 131 6.3 求解复系数方程组的全选主元高斯消去法 134 6.4 求解复系数方程组的全选主元高斯-约当消去法 137 6.5 求解三对角线方程组的追赶法 141 6.6 求解般带型方程组 144 6.7 求解对称方程组的分解法 148 6.8 求解对称正定方程组的平方根法 152 6.9 求解托伯利兹方程组的列文逊方法 155 6.10 高斯-赛德尔迭代法 159 6.11 求解对称正定方程组的共轭梯度法 161 6.12 求解线性最小二乘问题的豪斯荷尔德变换法 164 6.13 求解线性最小二乘问题的广义逆法 167 6.14 求解病态方程组 169 第7章 非线性方程与方程组的求解 172 7.1 求非线性方程实根的对分法 172 7.2 求非线性方程个实根的牛顿法 174 7.3 求非线性方程个实根的埃特金迭代法 176 7.4 求非线性方程个实根的试位法 178 7.5 求非线性方程个实根的连分式法 180 7.6 求实系数代数方程全部根的QR方法 184 7.7 求实系数代数方程全部根的牛顿下山法 186 7.8 求复系数代数方程全部根的牛顿下山法 191 7.9 求非线性方程组组实根的梯度法 196 7.10 求非线性方程组组实根的拟牛顿法 199 7.11 求非线性方程组最小二乘解的广义逆法 204 7.12 求非线性方程个实根的蒙特卡罗法 210 7.13 求实函数或复函数方程个复根的蒙特卡罗法 212 7.14 求非线性方程组组实根的蒙特卡罗法 215 第8章 插值与逼近 218 8.1 元全区间插值 218 8.2 元三点插值 220 8.3 连分式插值 222 8.4 埃尔米特插值 224 8.5 埃特金逐步插值 226 8.6 光滑插值 228 8.7 第种边界条件的三次样条函数插值、微商与积分 233 8.8 第二种边界条件的三次样条函数插值、微商与积分 238 8.9 第三种边界条件的三次样条函数插值、微商与积分 242 8.10 二元三点插值 248 8.11 二元全区间插值 250 8.12 最小二乘曲线拟合 253 8.13 切比雪夫曲线拟合 258 8.14 最佳致逼近的里米兹方法 262 8.15 矩形域的最小二乘曲面拟合 266 第9章 数值积分 274 9.1 变步长梯形求积法 274 9.2 变步长辛卜生求积法 276 9.3 自适应梯形求积法 278 9.4 龙贝格求积法 280 9.5 计算维积分的连分式法 283 9.6 高振荡函数求积法 286 9.7 勒让德-高斯求积法 289 9.8 拉盖尔-高斯求积法 292 9.9 埃尔米特-高斯求积法 294 9.10 切比雪夫求积法 296 9.11 计算维积分的蒙特卡罗法 298 9.12 变步长辛卜生二重积分法 300 9.13 计算多重积分的高斯方法 303 9.14 计算二重积分的连分式法 307 9.15 计算多重积分的蒙特卡罗法 311 第10章 常微分方程组的求解 313 10.1 全区间积分的定步长欧拉方法 313 10.2 积分步的变步长欧拉方法 316 10.3 全区间积分的维梯方法 319 10.4 全区间积分的定步长龙格-库塔方法 322 10.5 积分步的变步长龙格-库塔方法 325 10.6 积分步的变步长基尔方法 328 10.7 全区间积分的变步长默森方法 333 10.8 积分步的连分式法 337 10.9 全区间积分的双边法 342 10.10 全区间积分的阿当姆斯预报校正法 347 10.11 全区间积分的哈明方法 352 10.12 积分步的特雷纳方法 357 10.13 积分刚性方程组的吉尔方法 362 10.14 求解二阶微分方程边值问题的差分法 377 第11章 数据处理 382 11.1 随机样本分析 382 11.2 元线性回归分析 385 11.3 多元线性回归分析 388 11.4 逐步回归分析 392 11.5 半对数数据相关 403 11.6 对数数据相关 405 第12章 极值问题的求解 409 12.1 维极值连分式法 409 12.2 n维极值连分式法 412 12.3 不等式约束线性规划问题 416 12.4 求n维极值的单形调优法 420 12.5 求约束条件下n维极值的复形调优法 426 第13章 数学变换与滤波 434 13.1 傅里叶级数逼近 434 13.2 快速傅里叶变换 437 13.3 快速沃什变换 443 13.4 五点三次平滑 446 13.5 离散随机线性系统的卡尔曼滤波 447 13.6 α-β-滤波 454 第14章 特殊函数的计算 459 14.1 伽马函数 459 14.2 不完全伽马函数 461 14.3 误差函数 464 14.4 第类整数阶贝塞耳函数 465 14.5 第二类整数阶贝塞耳函数 470 14.6 变型第类整数阶贝塞耳函数 475 14.7 变型第二类整数阶贝塞耳函数 479 14.8 不完全贝塔函数 482 14.9 正态分布函数 486 14.10 t-分布函数 487 14.11 χ^2-分布函数 489 14.12 F-分布函数 490 14.13 正弦积分 492 14.14 余弦积分 493 14.15 指数积分 495 14.16 第类椭圆积分 497 14.17 第二类椭圆积分 500 第15章 排序 503 15.1 冒泡排序 503 15.2 快速排序 509 15.3 希尔排序 518 15.4 堆排序 525 15.5 结构排序 533 15.6 磁盘文件排序 546 15.7 拓扑分类 550 第16章 查找 554 16.1 结构体数组的顺序查找 554 16.2 磁盘随机文本文件的顺序查找 562 16.3 有序数组的对分查找 565 16.4 按关键字成员有序的结构体数组的对分查找 572 16.5 按关键字有序的磁盘随机文本文件的对分查找 583 16.6 磁盘随机文本文件的字符串匹配 587 参考文献 591
资料名称:《常用算法程序(C语言描述) 第三版 (PDF高清电子书+附书源码打包)》出版社:清华大学出版社作者:徐士良资料格式:PDF文件大小:6.29MB语言:简体中文资料说明:【下载说明】国内算法教材中少见的本优秀书籍。这里我把此经典书籍《常用算法程序C语言描述》第三版电子书和附书源代码打包提供给大家下载,以飨读者。其中电子书为PDF格式,清晰度极高;源代码为.c文件打包。【内容提要】本书针对工程中常用的行之有效的算法而编写,其主要内容包括多项式的计算、复数运算、随机数的产生、矩阵运算、矩阵特征值与特征向量的计算、线性代数方程组的求解、非线性方程与方程组的求解、插值与逼近、数值积分、常微分方程组的求解、数据处理、极值问题的求解、数学变换与滤波、特殊函数的计算、排序和查找。 书中所有算法均用C语言描述,并存放在张光盘上。 本书可供广大科研人员、工程技术人员以及管理工作者阅读使用,也可作为高等院校师生的参考书。【前言摘要】本书的前身是由清华大学出版社出版的《C常用算法程序(第二版)》,该书(第二版)颇受读者欢迎。但在该书中没有具体的算法函数程序,所有的算法函数程序均存放在张软盘上,读者需要具体阅读算法程序时感到很不方便。为了解决这个问题,本书除了进行重新组织和修订,并且将所有的算法程序在书中列出,方便读者查阅,同时为了使用方便,也提供了张装有所有程序的光盘。本书有以下几个特点:(1)书中除收了传统的算法外,还根据作者的工作经验和近年来数值计算的发展,选取了些新的、实用的算法。可以说,书中各章几乎都有些新的算法。(2)书中所有的算法程序都经过认真的调试。(3)本书提供给读者的不仅是本书稿,还有张配书光盘,读者可以方便地使用书中的每算法程序。(4)书中收算法都是行之有效的,基本可以满足解决工程中各种实际问题的需要。在配书光盘中,按章存放了书中所有的算法函数程序以及例子中的主函数程序。其中在目录CHX中存放了第X章中所有的函数程序(X为章号),同时也存放了该章算法函数需要调用的其他章中的些函数程序算法函数程序的文件名为“X函数名.c”,例子中相应的主函数程序的文件名为“X函数名0.c(第个例子)”或“X函数名1。c(第二个例子)”。限于作者水平,书中难免有不足和不妥之处,恳请读者批评指正。【目录信息】第1章 多项式的计算1.1 维多项式求值1.2 维多项式多组求值1.3 二维多项式求值1.4 复系数多项式求值1.5 多项式相乘1.6 复系数多项式相乘1.7 多项式相除1.8 复系数多项式相除第2章 复数运算2.1 复数乘法2.2 负数除法2.3 复数乘幂2.4 复数的n次方根2.5 复数指数2.6 复数对数2.7 复数正弦2.8 复数余弦第3章 随机数的产生3.1 产生0到1之间均匀分布的个随机数3.2 产生0到1之间均匀分布的随机数序列3.3 产生任意区间内均匀分布的个随机整数3.4 产生任意区间内均匀分布的随机整数序列3.5 产生任意均值与方差的正态分布的个随机数3.6 产生任意均值与方差的正态分布的随机数序列第4章 矩阵运算4.1 实矩阵相乘4.2 复矩阵相乘4.3 般实矩阵求逆4.4 般复矩阵求逆4.5 对称正定矩阵的求逆4.6 托伯利兹矩阵求逆的特兰持方法4.7 求般行列式的值4.8 求矩阵的值4.9 对称正定矩阵的乔里斯基分解与列式求值4.10 矩阵的三角分解4.11 般实矩阵的QR分解4.12 般实矩阵的奇异值分解4.13 求广义逆的奇异值分解法第5章 矩阵特征值与特征向量的计算5.1 约化对称矩阵为对称三对角阵的豪斯荷尔德变换法5.2 求对称三对角阵的全部特征值与特征向量5.3 约化般实矩阵为赫申伯格矩阵的初等相似变换法5.4 求赫身伯格矩阵全部特征的QR方法5.5 求实对称矩阵特征值与特征向量的雅可比法5.6 求实对称矩阵特征值与特征向量的雅可比过关法第6章 线性代数方程组的求解6.1 求解实系数方程组的全选主元高斯消去法6.2 求解实系数方程组的全选主元高斯-约当消去法6.3
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页