![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 61
MinJinFan
https://github.com/minjinfan
展开
-
高斯积分测试
代码仅用于自己测试Common.h/********** Common.h **********/#include <iostream>#include <armadillo>#include<vector>using namespace std;using namespace arma;typedef double real;// X = a - binline arma::vec3 SubEq(const arma::vec3&a原创 2021-08-03 20:33:47 · 401 阅读 · 1 评论 -
对于链表,虚拟节点真是个好东西
序:不论是自定义创建一个链表,还是对这个链表做操作,虚拟节点绝对是一个好东西。比如创建一个自定义的单链表class MyLinkedList{public: int _size = 0; LinkNode _dummyHead; MyLinkedList(){ int _size = 0; _dummyHead = LinkNode(); } ~MyLinkedList(){ LinkNode *cur.原创 2021-06-08 23:27:08 · 536 阅读 · 3 评论 -
链表
一、链表的类型什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点是由两部分组成,一个是数据域,一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向NULL。1、单链表链表的入口点称为链表的头节点,也就是head。如图所示:2、双向链表单链表中的节点只能指向节点的下一个节点。双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。双链表 既可以向前查询也可以向后查询3、循环链表循环链表,顾名思义,就是链表首尾相连。.原创 2021-03-04 15:55:49 · 3492 阅读 · 2 评论 -
VsCode C++环境配置、VsCode + cmake 多目录文件编译、调试
0、准备工作 下载 VsCode 链接:https://code.visualstudio.com/ 下载 g++ 链接:https://pan.baidu.com/s/1b7FPbnDzVLuuKMm1dWVhaA 提取码:p978 下载CMake 链接:https://pan.baidu.com/s/1JDTR0GHvBpBJ_AoH0qP-ow 提取码:k4zr 一、C++环境配置...原创 2020-11-21 17:43:52 · 3688 阅读 · 5 评论 -
bitset 函数
bitset功能:将对象转换成二进制保存 所需头文件: bitset<8> bitset1; //无参构造,长度为8,默认每一位为0 bitset<8> bitset2(10); //长度为8,二进制保存,前面用0补充 string str("110101"); bitset<16> bitset3(str); //长度为16,二进制保存,前面用0补充 char c[] = "110101"; bitset<16>.原创 2020-09-27 16:29:38 · 3343 阅读 · 1 评论 -
c++中getline、substr、find的用法
功能:读入一行数据。c++中有2种getline函数,在头文件 <istream> 中,是istream类的成员函数; 另一种是在头文件 <string> 中,是普通函数。1.头文件 <istream> 的getline函数两种重载形式:istream& getline (char* s, streamsize n ); //读取最多...原创 2020-03-01 19:01:37 · 835 阅读 · 0 评论 -
C++ 中 stringstream 类的用法
一、类型转换——数字->字符串C++ stringstream 类是一种十分有用的类,特别是当我们需要在程序中使用字符串和数字数据互相转换的时候。要想在程序中使用 stringstream 类,我们需要在源程序文件中包含头文件include<sstream>。stringstream 对象的使用方法与cout对象的使用方法基本相同。当我们需要按预定的格式将程序中的数据保存...转载 2020-03-01 19:04:13 · 490 阅读 · 0 评论 -
数值计算笔记之线性方程组的迭代解、迭代方法
一、迭代解1、直接法与迭代法直接法:直接求出准确解迭代法:得到近似解(由截断误差造成)例:求解方程组解法一:直接法(选择高斯消去法)1、消元2、回代解法二:迭代法迭代法基本原理:给定某初始解,按 若{}收敛于,且连续,则即为的解 ( 详细过程链接。非线性方程的求解(迭代法)下面是方程组的:取初始向量 ,...原创 2020-02-27 12:39:39 · 4104 阅读 · 0 评论 -
数值计算笔记之数值微分(一)
一、差商型求导公式1、差商一重积分可以理解为求面积,那么一阶求导可以理解为斜率。 <1>、向前插商公式 : <2>、向后插商公式: <3>、中心插商公式:泰勒公式为:其中的误差为:1、向前差商误差 :2、向后差商误差:3、中心差商误差: ,显然,...原创 2020-02-23 18:49:26 · 5531 阅读 · 0 评论 -
数值计算笔记之数值积分(二)龙贝格算法
龙贝格求积公式也称为逐次分半加速法。它是在梯形公式、辛普森公式和柯特斯公式之间的关系的基础上,构造出一种加速计算积分的方法。 作为一种外推算法,它在不增加计算量的前提下提高了误差的精度。 在等距基点的情况下,用计算机计算积分值通常都采用把区间逐次分半的方法进行。这样,前一次分割得到的函数值在分半以后仍可被利用,且易于编程。一、变步长的梯形法求<...原创 2020-02-21 17:42:37 · 19155 阅读 · 0 评论 -
数值计算笔记之数值积分(一)
0、引言在高数中,可以根据,求得积分。但是如果存在以下两种情况:是离散函数 无法求得原函数那么对于这种情况,就可以利用数值积分。所谓数值积分,指利用被积函数在有限个点上的函数值来计算积分近似值的一种方法。一、数值积分的积分思想积分中值定理:一重积分可以理解为求面积,积分中值定理可以看成:在上,函数与轴的面积等于以为长,中一点函数值为宽的矩形的面积。1、中矩形...原创 2020-02-19 17:33:25 · 10975 阅读 · 0 评论 -
数值计算笔记之插值(四)三次样条插值
0、定义已知函数在区间上个互异节点,处的函数值为,若构造函数,满足: 在每个小区间上是一个不超过三次的多项式 在上连续则称为的三次样条插值函数。根据定义知道规律为:已知:n+1个数据点[xi, yi],i = 0, 1, …, n 每一分段都是三次多项式函数曲线 节点达到二阶连续 左右两端点处特性(自然边界,固定边界,非节点边界)根据定点,求出每段样条曲线方...原创 2020-02-17 20:33:59 · 19641 阅读 · 1 评论 -
数值计算笔记之插值(三) 分段线性插值
回顾:对于 拉格朗日插值多项式与牛顿插值多项式的统一次拉格朗日插值多项式为:,其中 牛顿插值公式:在插值节点、插值条件相同的情况下,二者本质一样,只是计算过程不一样。牛顿插值适合需要增加节点,提高精度的情况,不需要重新开始计算,可以利用上一步的计算结果。而可以利用上一步的计算结果的特性也是牛顿插值比拉格朗日插值较好的一点。即牛顿插值具有承继性。问题:是不是节点越多,结果精度越...原创 2020-02-15 21:03:45 · 16352 阅读 · 1 评论 -
windows 64位环境下的Armadillo 的安装
有时在编程时需要用到矩阵运算,这时就需要安装额外的矩阵运算,而Armadillo是用于C ++语言的高质量线性代数库(矩阵数学),刚刚安装时总是出错,现在总结一下,方便其他人。一、准备工作1、下载Armadillo。我的网盘,提取码:aoam 官网链接。2、下载32位版本的Lapack和Blas。我的网盘,提取码:57ru (安装包为LapackBlas.rar) ...原创 2020-02-14 12:40:22 · 3992 阅读 · 7 评论 -
数值计算笔记之插值(二)牛顿插值
1、差商(均商)1.定义:设函数原创 2020-02-13 22:30:06 · 7741 阅读 · 1 评论 -
数值计算笔记之插值(一)拉格朗日插值
0、插值的概念简单来讲插值就是定义一个在特定点取给定值的函数的过程。1、解决的问题已知函数在某些点上的函数值,要求得一个函数使其通过这些点,或进一步确定在其他点的函数值。即由给定的几个初始点,能够把其余的点求出来,从而拟合成一条光滑的曲线。2、插值的定义:设在上有定义,是上的个互异点,且在这些点上的函数值为。若存在,使 , 则称为的插值函数。这时有人就懵了,既...原创 2020-02-12 20:24:11 · 4807 阅读 · 1 评论 -
数值计算笔记之非线性方程的求解(二)迭代法
0、基本原理:逐次逼近给定某初始解,按 若{}收敛于,且连续,则即为的解 ( )迭代法收敛的充分条件定理:若迭代函数满足在区间上存在,且存在,使 则(1)、任取初值,迭代法都收敛于方程的唯一实根。(2)、 用于误差估计(3)、 用于误差估计例:用迭代法求方程 ,再内的根,要求,保留5位有效数字。...原创 2020-02-11 19:01:59 · 3415 阅读 · 0 评论 -
数值计算笔记之非线性方程的求解(一)二分法
二分法若 在上连续,且,则在上必有解。二分法的步骤:第一步:取边界上的中点,求。如图,是正确解,是第一个中点。考虑存在以下情况:,则即为方程的解。这种情况很极端,极少出现。 ,那么、同号,则令,。(范围缩小一半) ,那么、同号,则令,。第二步:用取代,重复步骤一,直到为止。作为的数值解(是n次迭代后的近似解,是准确解,是误差限)。这时我们发现中的我们还是不...原创 2020-02-10 16:19:14 · 2826 阅读 · 0 评论 -
对Vector中的值进行排序
首先需要明确一点就是 vcetor 容器里的最后一个值是 end() ,即你将 0 ~ 9 十个数依次压进 vector ,容器中的最后一个值不是 9,而是 end(); 但是容器的大小还是10.对 vector 使用 sort 函数,可分为三种情况:#include<algorithm> 该头文件必必不可少1、基本类型,vector中的元素类型是统一的,如vect...原创 2019-11-21 10:27:25 · 18413 阅读 · 0 评论 -
C++ 保留小数点后几位
#include <iomanip> //头文件必不可少1.第一种写法cout << setiosflags(ios::fixed) << setprecision(n);2.第二种写法cout.setf(ios::fixed);cout << setprecision(n);3.第三种写法cout &...原创 2019-10-31 18:12:38 · 14799 阅读 · 2 评论 -
C++ 平方、开方、取整运算
#include <math.h>//平方 pow()int a = pow(4,2);// 4的平方=16//开方int b = pow(9,0.5); // 9的平方根等于3int c = sqrt(9); // 9的平方根等于3//整数绝对值int c = abs(b-c);//浮点数绝对值double d = fabs(b-c);...原创 2019-10-31 17:48:22 · 22738 阅读 · 0 评论 -
MOM 学习二
UnifyGeoUnit()internal :: is_infinite_gnd = false;internal :: g_gause_mean = 0.0;int gause_num = 0;double gause_distance = 0;GenerateBaisViaElement定义一个 gnd_elem_idx_set 数组,并找到在 GND 上的 eleme...原创 2019-11-11 18:41:09 · 448 阅读 · 0 评论 -
C 中 *与& 一起使用
本来“* head”代表的是传指针的,但是只能改变head指向的内容,而“ * &head ”意思是说head是传进来的指针的同名指针,就能既改变*head指向的内容,又能改变head这个指针。比如://main()中有个Node<int>* p,int t;//当调用insertFront(p,t) 时,如果template <class T>...原创 2019-10-25 13:06:39 · 1987 阅读 · 0 评论 -
Visul studio 编译中文乱码问题解决方法
作为一个初学者,刚刚学习C++的时候就遇到了一个问题——那就是编译中文时输出乱码。源码为输出结果为中文变成了?。后来通过问师兄和上网查资料,有了一下3个简单的解决方法。1.在控制台(就是我们看编译结果的界面)中,在顶端右击控制台,在弹出的对话框中点击“属性”,在弹出的对话框中选中使用旧时控制台,如图:2.在主函数main中添加 locale::global(lo...原创 2019-05-07 15:48:17 · 912 阅读 · 0 评论