数值计算
文章平均质量分 68
Marc Pony
科技求真,艺术求美,择一事,终一生。
古今之成大事业、大学问者,必经过三种境界:“昨夜西风凋碧树,独上高楼,望尽天涯路”,此第一境也;“衣带渐宽终不悔,为伊消得人憔悴”,此第二境也;“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”,此第三境也。
展开
-
一个函数最好只做一件事?未必!这是一个例子
编程实践中,为了模块化设计,降低程序的复杂度,提高程序的可读性,通常设计一个函数时应尽可能简单,简单到只做一件事。然而,工程实践中,有时候受制于一些因素,如内存空间、程序执行效率等,迫使我们不得不打破“一个函数只做一件事”的规则。原创 2023-11-30 22:39:02 · 582 阅读 · 1 评论 -
已知函数表达式,估计海塞矩阵(Hessian Matrix)
已知函数表达式,有限差分估算海塞矩阵(Hessian Matrix)原创 2023-02-13 22:49:13 · 817 阅读 · 0 评论 -
n次多项式的任意阶导数计算(附代码)
n次多项式的任意阶导数计算(附代码)原创 2022-10-29 22:23:37 · 1902 阅读 · 0 评论 -
三次、五次多项式插值(附代码)
本博文利用matlab符号计算的功能,给出三次、五次多项式插值的系数解析解(不需要解矩阵方程),并尽可能减少运算量原创 2022-10-23 16:59:46 · 9751 阅读 · 1 评论 -
一阶导数和二阶导数的二阶/四阶中心差分格式
一阶导数和二阶导数的二阶/四阶中心差分格式原创 2022-04-13 22:15:17 · 21417 阅读 · 4 评论 -
警惕数值计算过程的误差传播,以一个实例说明
警惕数值计算过程的误差传播,以一个实例说明原创 2022-02-27 18:09:26 · 805 阅读 · 0 评论 -
牛顿法迭代求根c语言实现
牛顿法迭代求根c语言原创 2021-09-14 22:30:30 · 809 阅读 · 1 评论 -
如何用纯c语言优雅地实现一个矩阵运算库
文章目录1.一个优雅好用的c语言库必须满足哪些条件2.实现一个矩阵运算库的几点思考(1)采用预定义的数据类型,避免直接使用编译器定义的数据类型(2)基于对象编程,定义矩阵对象(3)除了特别编写的内存处理函数(使用栈链表保存、释放动态分配的内存地址),不允许任何函数直接分配和释放内存(4)防御性编程,对输入参数做有效性检查,并返回错误号(5)注意编程细节的打磨3.完整c程序参考资料 编程既是技术输出也是艺术创作。鉴赏高手写的程序,往往让人眼前一亮,他们思路、逻辑清晰,所呈现的代码简洁、优雅、高效,令人为之原创 2021-08-16 23:23:16 · 5303 阅读 · 31 评论 -
LU分解、矩阵求逆与解线性方程组(matlab代码)
文章目录一、前言二、LUP分解MATLAB代码三、LUP分解求解方程组MATLAB代码四、LUP分解、矩阵求逆、求解线性方程组测试例子一、前言 参考知乎文章:LU分解、LUP分解、Cholesky分解中的LUP分解,LUP分解相比LU分解更加稳定,在矩阵求逆、求解解线性方程组有广泛运用。笔者修复了文章所述LUP算法一个BUG,当待分解的矩阵某一列均为0时,例如矩阵[0 1;0 1],无法进行LUP分解。增加基于LUP分解求解线性方程组代码、在矩阵方程AX=B中,当B为单位阵时,利用LUP分解可以快速稳原创 2021-07-07 22:45:46 · 5912 阅读 · 6 评论 -
快速平方根倒数算法C程序(包括单精度与双精度)
/**********************************************************************************************Function: fast_invSqrt32Description: 快速平方根倒数Input: 单精度浮点数numberOutput: 无Input_Output: 无Return: 快速平方根倒数的值Author: Marc Pony(marc_pony@163.com)*************原创 2021-04-05 15:54:02 · 788 阅读 · 8 评论 -
详解QT中的快速正弦、快速余弦函数的实现
文章目录一、问题描述二、推导过程1、推导过程一、问题描述 数值计算中,许多数学函数(如正弦、余弦、平方根等)可以通过泰勒级数展开的方法求得,然而,对于正弦函数与余弦函数,采用泰勒级数展开的方法收敛速度慢,计算速度慢。那么,有没有在满足给定的计算精度前提下,快速计算正弦函数与余弦函数的算法呢? QT中提供了快速正弦函数、快速余弦函数的算法,代码片段如下:#define QT_SINE_TABLE_SIZE 256#define M_PI (3.14159265358979323846)inli原创 2021-03-24 23:13:05 · 4236 阅读 · 0 评论 -
二元一次方程组、三元一次方程组、四元一次方程组解析解(代码)
文章目录一、二元一次方程组解析解一、二元一次方程组解析解原创 2020-11-02 22:26:04 · 1404 阅读 · 0 评论 -
模型误差、观测误差、截断误差(或称方法误差)、舍入误差
文章目录1.模型误差2.观测误差3.截断误差(或称方法误差)4.舍入误差 用计算机来解决科学计算问题的过程中,主要需考虑四种误差:模型误差、观测误差、截断误差(或称方法误差)、舍入误差。1.模型误差 用计算机解决科学计算问题首先要建立数学模型,它是对被描述的实际问题进行抽象、简化而得到的,因而是近似的。我们把数学模型与实际问题之间出现的这种误差称为模型误差。(by《数值分析(第四版)》) 例如,在辨识机器人动力学参数时,机器人关节的摩擦力/力矩模型通常近似为一阶模型:,将动力学方程线性化之后,原创 2020-09-11 22:58:56 · 18934 阅读 · 0 评论 -
三对角方程与循环三对角方程数值解(附完整代码)
文章目录一、三对角方程数值解(Thomas algorithm或称“追赶法”)二、循环三对角方程数值解(Sherman-Morrison formula)三、参考文献一、三对角方程数值解(Thomas algorithm或称“追赶法”)%{Function: solve_tridiagonal_matrix_equationDescription: 求解三对角矩阵方程A(a, b, c) * x = dInput: 三对角线向量a,b,c, 向量d,向量维数nOutput: 三对角矩阵方程的原创 2020-07-06 23:20:20 · 3171 阅读 · 0 评论 -
快速傅里叶变换(FFT)c语言实现
快速傅里叶变换(FFT)c语言实现:(参考:FFT多种编程语言实现)。#include <stdio.h>#include <math.h>#include <stdlib.h>#define PI 3.14159265358979typedef struct Complex{ double real; double image;} CPLX;void _fft(CPLX buf[], CPLX out[], int n, int st原创 2020-05-23 23:34:16 · 8674 阅读 · 1 评论 -
高性能数值计算编程小技巧(带实例,持续更新.......)
文章目录一、高性能高稳定性数值计算的程序设计技巧的例子1、乘法比除法运算速度更快,一般情况下,尽量用乘法代替除法2、某些情况下,需要用除法代替乘法以获得更高计算精度和稳定性,即使损失一定计算效率二、C代码二、scara机器人工具坐标(TCP)标定1、工具固定在小臂2、工具固定在末端一、高性能高稳定性数值计算的程序设计技巧的例子1、乘法比除法运算速度更快,一般情况下,尽量用乘法代替除法 a=...原创 2020-04-05 23:49:00 · 1098 阅读 · 0 评论 -
一元二次方程极简新解法
文章目录一、推导步骤二、总结三、参考文献一、推导步骤 已知一元二次方程ax2+bx+c=0(a≠0)ax^2 + bx + c = 0(a\neq0)ax2+bx+c=0(a=0),求方程的两根。初中时,我们学了一种求解一元二次方程根的方法——配方法,这里不再赘述。今天,讲解一种极简新解法,该方法是美国奥数总教头、卡耐基梅隆数学大学教授罗博深(Po-Shen Loh)于2019年12月1...原创 2020-03-12 23:14:55 · 1644 阅读 · 0 评论 -
多项式求值(Evaluation of a Polynomial)
多项式求值(Evaluation of a Polynomial)你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。fasafaf新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你...原创 2020-02-29 23:02:57 · 2665 阅读 · 0 评论 -
一元四次方程高精度实数根(C语言)
文章目录一、问题描述二、CCC代码一、问题描述 已知一元四次方程ax4+bx3+cx2+dx+e=0(a≠0)ax^4 + bx^3 + cx^2+dx+e = 0(a\neq0)ax4+bx3+cx2+dx+e=0(a=0),求方程的实数根。笔者用C语言实现了费拉里法求解一元四次方程高精度的实数根。一元四次方程实数根求解过程会调用一元二次方程和一元三次方程高精度实数根的求解函数,参见另...原创 2020-02-29 17:51:08 · 5179 阅读 · 4 评论 -
一元三次方程高精度实数根(C语言)
文章目录一、问题描述二、CCC代码三、参考文献/资料一、问题描述 已知一元三次方程ax3+bx2+cx+d=0(a≠0)ax^3 + bx^2 + cx+d = 0(a\neq0)ax3+bx2+cx+d=0(a=0),求方程的实数根。笔者用C语言实现了著名的盛金公式求解一元三次方程高精度的实数根。一元三次方程实数根求解过程会调用一元二次方程高精度实数根的求解函数,参见另外一篇博文:一元...原创 2020-02-29 17:17:26 · 2455 阅读 · 0 评论 -
一元二次方程高精度实数根(C语言)
文章目录一、问题描述二、推导步骤三、CCC代码四、总结五、参考文献/资料一、问题描述 已知一元二次方程ax2+bx+c=0(a≠0)ax^2 + bx + c = 0(a\neq0)ax2+bx+c=0(a=0),求方程的实数根。在数学上,我们很容易可以得到方程的实数根为:x1=−b+b2−4ac2a(1)x_1=\frac{-b+\sqrt{b^2-4ac}}{2a} \tag 1...原创 2020-02-26 22:52:18 · 3368 阅读 · 0 评论