数值分析-引论

任务 整理引论中提到的一些算法 秦九韶算法 多项式计算f(x) 计算多项式,形式如: a0x^n+a1x^n-1+a2x^n-2+…+an-1x+an 通过合并多项式,降低运算次数 根本源于: a0*x^n+a1*x^n-1=(a0x+a1)*x^n-1 由此可得: b0=a0 bi=bi-1*x+ai 最终,bn为所求 求导f'(x*) f(x)=(x-x*)(b0x^n-1+b1x^n-2+…+bn-1)+bn 解释上式——通过迭代: (x-x*)(b0x^n-1)=b0x^n-b0x^n-1x* (x-x*)(b1x^n-2)=b1x^n-1-b1x^n-2x*=(b0x*+a1)x^n-1-b1x^n-2x*=b0x^n-1x*+a1x^n-1-b1x^n-2x* 则递推公式,可消去末项,得到 a0x^n+a1x^n-1+a2x^n-2+…+an-1x+an 得到证明,故可通过求上述导,即令 q(x)=(b0x^n-1+b1x^n-2+…+bn-1) p'(x)=q(x)+(x-x*)q'(x) p'(x*)=q(x*) 利用上一部分的多项式计算法则可得结果 迭代法 开方转化为四则运算,计算√a 可以取:xk+1=1/2(xk+a/xk) 结果: 可见收敛的速度很快,但当a取500000时,10次迭代与内置结果有一定出入,将初值取值改为自适应 思考,当数目较大时,开方结果的位数与数字的一半位数接近,则取初值为一半位数 这样对于较大数字,选取的初值接近最终结果,更快收敛效果 以直代曲和化整为零 非线性问题线性化 直线近似曲线 方程求根 牛顿迭代法 微积分 梯形公式 圆周率 割圆法 加权平均的松弛技术 这是最没有认知的一部分,是计算方法提高收敛速度的一种有效方法。 x0于x1为x*的两个近似值, x=x1+w(x1-x0)=(1+w)x1-wx0 w选取适当可逼近真值,但选取困难。

C++“窗口”法寻找子串

题目和解题方法来源:左神(左程云):深入解析字节跳动算法面试题与数据结构
用C++实现算法(原讲解为Java)。并通过随机新建字符串进行测试。
源代码于GitHub

搜索二叉树BST

用C++实现算法:根据一个搜索二叉树后序遍历的数组posArr,重建出整棵树返回新建树的头节点。
并通过随机新建BST、获得BST的后序遍历数组、判定两BST是否相等进行测试。

matlab——抽样函数

任务 对抽样函数Sa(t)了解不多,对其积分公式进行推导,并用matlab进行计算与绘图 matlab绘制函数图像 上面的代码已经可以绘制抽样函数的图像,但为得到更直观的信息,进行下面的图像注释,参考: MATLAB画图技巧:改变坐标轴刻度的显示数值 进行更改:matlab可用latex公式,因此用pi表示,并自动生成坐标轴范围 Matlab保存图像的5种方法 saveas(gca, filename, fileformat),其中的三个参数: gca:图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3;也可以直接用gcf获取当前窗口句柄。 filename:单引号字符串,指定文件名 fileformat:单引号字符串,指定存储格式 例子: saveas(gcf,’save.jpg’); %保存当前窗口的图像 saveas(2,’save.jpg’); %保存Figure 2窗口的图像 在Matlab里面如何实现字符串的拼接 定义字符串:string=”” 拼接函数:strcat({‘hello ‘},{‘world’}); 附:文档 求积分 如何计算上述积分?两种方法: 利用引入收敛因子,求含参变量的积分 傅里叶变换求解 对两种方法分别整理如下 含参变量积分   整理自作业帮回答     Laplace变换 其他解法 可以通过傅里叶变换求解,分别求取sint与1/t的傅里叶变换,再进行卷积 利用复变函数的留数求解,但奇点在积分路径上,因此不寻常 参考: 为什么狄利克雷积分是pi/2??