数值计算
Sany 何灿
这个作者很懒,什么都没留下…
展开
-
Crout分解法 | matlab
function [x, L, U]=Crout(A, b)% Crout分解法求解线性方程组% A为系数矩阵,b为常数项列N = size(A);n = N(1);L = zeros(n, n); % 下三角矩阵U = eye(n, n); % 上三角矩阵L(1:n, 1) = A(1:n, 1); % L的第一列U(1, 1:n) = A(1, 1:n) / L(1, 1); % U的第一行for k = 2:n for i = k:n % L的第k原创 2020-07-10 15:41:17 · 7038 阅读 · 4 评论 -
LU分解法 | matlab
% LU分解法% M为输入的增广矩阵% precision为输入的精度要求,如不输入或输入有误,则默认为10位if nargin == 2 try digits(precision); catch disp('输入的精度有误,这里按照10位有效数字计算') digits(10); endelse digits(10);endA = vpa(M);row = size(A, 1);col = size(A, 2原创 2020-07-10 15:39:33 · 1474 阅读 · 0 评论 -
Cholesky分解法 | matlab
function [X]=Mchol(A,b) %Cholesky分解法[N, N] = size(A); X = zeros(N, 1); Y = zeros(N, 1); for i = 1:N A(i, i) = sqrt(A(i, i)-A(i, 1:i-1) * A(i, 1:i-1)'); if A(i, i) == 0 fprintf('矩阵是奇异的') break end for j = i+1:N原创 2020-07-10 15:38:31 · 1566 阅读 · 0 评论 -
四阶Runge-Kutta格式 | matlab
function [x, y]=rk4(f, a, b, y0, h)% 四阶Runge-Kutta格式% f是带求函数的一阶导形式% a,b分别是积分上下限% y0 是初始条件y(0)% h是步长s = (b - a) / h; % 求步数X = zeros(1, s+1);Y = zeros(1, s+1);X = a:h:b;Y(1) = y0;for k = 1:s k1 = h * f(X(k), Y(k)); k2 = h * f(X(k) + h/2,原创 2020-07-10 15:37:00 · 3981 阅读 · 2 评论 -
三阶Runge-Kutta格式 | matlab
function [x, y]=rk3(f, a, b, y0, h)% 三阶Runge-Kutta格式% f是带求函数的一阶导形式% a,b分别是积分上下限% y0 是初始条件y(0)% h是步长s = (b - a) / h; % 求步数X = zeros(1, s+1);Y = zeros(1, s+1);X = a:h:b;Y(1) = y0;for k = 1:s k1 = h * f(X(k), Y(k)); k2 = h * f(X(k) + h/2,原创 2020-07-10 15:35:52 · 2411 阅读 · 0 评论 -
改进Euler格式 | matlab
function [x, y]=mod_euler(f, a, b, y0, h)% 改进的欧拉格式% f是带求函数的一阶导形式% a,b分别是积分上下限% y0 是初始条件y(0)% h是步长s = (b - a) / h; % 求步数X = zeros(1, s+1);Y = zeros(1, s+1);X = a:h:b;Y(1) = y0;for k = 1:s k1 = f(X(k), Y(k)); k2 = f(X(k+1), Y(k) + h * k1)原创 2020-07-10 15:34:42 · 1936 阅读 · 0 评论 -
隐式Euler格式 | matlab
function [x, y]=imp_euler(f, a, b, y0, h)% 隐式欧拉格式% f是带求函数的一阶导形式% a,b分别是积分上下限% y0 是初始条件y(0)% h是步长s = (b - a) / h; % 求步数X = zeros(1, s+1);Y = zeros(1, s+1);X = a:h:b;Y(1) = y0;for k = 1:s k1 = f(X(k), Y(k)); k2 = f(X(k+1), Y(k) + h * k1);原创 2020-07-10 15:33:34 · 5914 阅读 · 1 评论 -
显示Euler格式 | matlab
function [x, y]=dis_euler(f, a, b, y0, h)% 显示欧拉格式% f是带求函数的一阶导形式% a,b分别是积分上下限% y0 是初始条件y(0)% h是步长s = (b - a) / h; % 求步数X = zeros(1, s+1);Y = zeros(1, s+1);X = a:h:b;Y(1) = y0;for k = 1:s Y(k+1) = Y(k) + h * f(X(k), Y(k))endx = X';y = Y';原创 2020-07-10 15:32:10 · 2121 阅读 · 0 评论 -
Romberg(龙贝格)积分法 | matlab
function s=rombg(a, b, TOL)% a 为积分下限% b 为积分上限% TOL 为误差容限% s 为最后Romberg积分的值% rombg_f为积分函数n = 1;h = b - a;delt = 1; % 误差初值x = a;k = 0;R = zeros(4, 4);R(1, 1) = h / 2 * (rombg_f(a) + rombg_f(b));while delt > TOL % 如果两次计算的误差大于给定误差则进入循环原创 2020-07-10 15:30:09 · 3418 阅读 · 4 评论 -
复化Simpson求积公式 | matlab
function T=simpson(f_name, a, b, n)% f_name为要求的定函数y=f(x)所在的程序文件名% a为积分下限% b为积分上限% n为积分区间[a,b]划分成小区间的等份数h = (b-a) / n;x = a + (0:n) * h;f = feval(f_name, x);N = length(f) - 1;if N == 1 fprintf('Data has only one interval') return;endif N原创 2020-07-10 15:28:35 · 11481 阅读 · 0 评论 -
复化Cotes求积公式 | matlab
function c=cotes(a, b, TOL)% a为积分下限% b为积分上限% TOL 为误差容限% cotes_f()为积分函数n = 1;h = b - a;delt = 1; % 误差初值x = a;k = 0;R = zeros(4, 4);R(1, 1) = h / 2 * (cotes_f(a) + cotes_f(b));while delt > TOL % 如果两次计算的误差大于给定误差则进入循环 k = k + 1; h原创 2020-07-10 15:26:59 · 3025 阅读 · 0 评论 -
最小二乘法进行直线拟合 | matlab
function least_square_linear(X, Y) % 用最小二乘法进行直线拟合plot(X, Y, 'o')xlabel('x')ylabel('y')hold on% a = (X.' * X).^(-1) * (X.') * Yx = mean(X); % X的均值y = mean(Y); % Y的均值b_0 = (X-x) * ((Y-y).') / ((X-x) * ((X-x).')) % 斜率b_1 = y - b_0 .* x % 截距y_pred =原创 2020-07-10 15:22:29 · 2459 阅读 · 0 评论 -
Runge-Kutta(龙格-库塔)方法 | 基本思想 + 二阶格式 + 四阶格式
Euler方法有各种格式,但其精度最高不超过2阶,一般难以满足实际计算的精度要求。因此,有必要构造精度更高的数值计算公式求解微分方程。Runge-Kutta方法就是一种高精度的经典的解常微分方程的单步方法。1. Runge-Kutta 方法的基本思想对于函数y=y(x)y=y(x)y=y(x),设yn=y(xn)y_n=y(x_n)yn=y(xn),将y(xn+1)y(x_{n+1})y(xn+1)在点xnx_nxn处展开为Taylor级数:y(xn+1)=y(xn)+hy′(ϵ)xn<原创 2020-06-29 11:36:11 · 65963 阅读 · 6 评论 -
Euler(欧拉)方法 | 显示Euler格式、隐式Euler格式、两步Euler格式、改进的Euler格式
微分方程初值问题的数值解法,就是将一个连续的微分方程初值问题转化为一个离散的差分方程初值问题,然后通过解差分方程而获得其数值解。即:对自变量的一系列离散节点xk(k=0,1,2,⋯ ,n⋯ )x_k(k=0,1,2,\cdots,n\cdots)xk(k=0,1,2,⋯,n⋯),计算出去精确解y(xk)y(x_k)y(xk)的近似值yk(k=1,2,⋯ ,n,⋯ )y_k(k=1,2,\cdots,n,\cdots)yk(k=1,2,⋯,n,⋯),(其中y0y_0y0是准确值)从而得到函数y=y(x原创 2020-06-29 11:33:54 · 31745 阅读 · 2 评论 -
Guass-Legendre(高斯-勒让德)求积方法 | Guass型求积公式 + Legendre多项式
1. Guass型求积公式定义1:在区间[a,b][a,b][a,b]内,如果由节点x0,x1,⋯ ,xnx_0,x_1,\cdots,x_nx0,x1,⋯,xn构造的插值型求积公式∫abf(x)dx≅∑k=0nAkf(xk)\int_a^b f(x)dx \cong \sum_{k=0}^nA_k f(x_k)∫abf(x)dx≅k=0∑nAkf(xk)具有2n+1次代数精度,则称该求积公式为Guass求积公式,求积节点xk(k=0,1,⋯ ,n)x_k(k=0,1,\cdots,原创 2020-06-29 11:28:06 · 28435 阅读 · 2 评论 -
Romberg(龙贝格)积分法
变长梯形法方法简单,但精度低而且收敛速度慢。如果在保留这种方法使用的逐步二分思想的基础上,将用误差事后估计法所求得的误差作为积分近似值的补偿值,以便进一步提高精度,同时又引入加速收敛的技术,则就可以得到一种更加完善的数值积分方法,即Romberg积分法。将T2nT_{2n}T2n和TnT_nTn的表达式代入I‾=43T2n−13Tn\overline I=\frac{4}{3}T_{2n}-\frac{1}{3}T_nI=34T2n−31Tn,得:I‾=43(12⋅12H[f(a)+f(b)原创 2020-06-29 11:24:16 · 20493 阅读 · 4 评论 -
变步长积分法 | 梯形法 + 误差
复化求积方法对提高积分精度是行之有效的,但必须事先给出恰当的步长h。如果步长太长,则难以保证精度,太小则增加计算量。在实际应用中,一般采用变步长积分法来解决该问题,即让步长不断减小,考察在不同步长条件下的计算结果的精度,一旦计算结果满足精度要求,则可以停止计算,给出正确答案。这是面向计算机的解决方案。在人工计算的条件下,一般采用一种特殊的变步长法,即采用逐次二分积分区间的方法得到不断减半的步长,再应用复化求积方法,可推导出某种递推公式,既可减少计算量,又可以较快地达到计算精度的要求。变步长梯形法对于原创 2020-06-29 11:21:27 · 5034 阅读 · 1 评论 -
复化求积方法 | 复化梯形公式、复化Simpson公式、复化Cotes公式
从Newton-Cotes的截断误差公式可以看出,当积分区间[a,b][a,b][a,b]较大时,低阶的Newton-Cotes求积公式截断误差都比较大。由于高阶Newton-Cotes求积公式是数值不稳定的,因此通过不断增加阶数来提高求积公式的精度是不可行的。但是,如果将积分区间[a,b][a,b][a,b]分成几个小区间(任意的),在每个小区间上应用Newton-Cotes求积公式,其截断误差必然会减小,然后再把每个小区间上的积分值累加起来,这样却能大大提高整个积分的精度。这种方法称为复化求积方法。常原创 2020-06-29 11:19:40 · 29981 阅读 · 0 评论 -
低阶的Newton-Cotes求积公式 | 梯形求积公式、Simpson求积公式、Cotes求积公式
梯形求积公式当区间[a,b][a,b][a,b]分成1等分,即n=1时,h=(b−a)h=(b-a)h=(b−a),Cotes系数计算如下:C0=(−1)11⋅0!⋅(1)!∫01∏j=0,j≠kn(t−j)dt=−∫01(t−1)dt=12C1=(−1)01⋅1!⋅(0)!∫01∏j=0,j≠k1(t−j)dt=∫01tdt=12C_0=\frac{(-1)^1}{1·0!·(1)!}\int_0^1 \prod_{j=0,j\neq k}^n(t-j)dt=-\int_0^1(t-1)dt=\.原创 2020-06-29 11:17:45 · 1403 阅读 · 0 评论 -
Newton-Cotes求积公式(一) | 一般形式 +公式稳定性 +截断误差与代数精度
1. Newton-Cotes公式的一般形式对于I=∫abf(x)dxI=\int_a^bf(x)dxI=∫abf(x)dx,将区间[a,b][a,b][a,b]分成n等份,步长为:h=(b−a)nh=\frac{(b-a)}{n}h=n(b−a)故求积节点xk=a+kh(k=0,1,2,⋯ ,n)x_k=a+kh(k=0,1,2,\cdots,n)xk=a+kh(k=0,1,2,⋯,n),通过这n+1n+1n+1个节点构造一个n次代数多项式pn(x)≅f(x)p_n(x) \cong f(原创 2020-06-19 09:21:55 · 9641 阅读 · 1 评论 -
数值积分 (二)| 求积公式的代数精度 + 构造方法
3. 求积公式的代数精度求积公式的精度可以用余项R来表示,即:∫abf(x)dx=∑k=0nAif(xi)+R\int_a^bf(x)dx=\sum_{k=0}^nA_if(x_i)+R∫abf(x)dx=k=0∑nAif(xi)+R一般地,R越小,表明求积公式的精度越高。但是,当被积函数f(x)f(x)f(x)是多项式时,R却表现出某种特性,即某一确定的求积公式,对某些多项式的积分是精确的,而对另外一些多项式的积分是不精确的。为了更好地刻画求积分精度的这种性质,需要引入下面代数精度的概原创 2020-06-19 09:19:07 · 27536 阅读 · 2 评论 -
数值积分 (一)| 基本思想 + 一般求积公式
在Newton-Leibnitz公式应用受到限制时,可以用数值方法构造计算公式,即所谓的数值积分方法来解决定积分的计算问题。表格函数,如某个微分方程的解不能用解析方法解出,而用数值方法给出的解是表格函数被积函数f(x)f(x)f(x)的原函数F(x)F(x)F(x)不能用初等函数的有限形式来表示,或表达形式过于复杂,不便于实际应用1. 数值积分的基本思想由高等数学可知,积分中值定理的表示形式为:I=∫abf(x)dx=(b−a)f(ϵ)I=\int_{a}^bf(x)dx=(b-a)f(\e原创 2020-06-19 09:16:49 · 7136 阅读 · 0 评论 -
Hermite(埃尔米特)插值法 | 插值多项式+ 插值余项
Lagrange插值法、Newton插值法、逐次插值法、分段插值法,只要求插值多项式pn(x)p_n(x)pn(x)与被插值函数f(x)f(x)f(x)在插值节点处的函数值相等即可,即pn(xi)=f(xi)(i=0,1,⋯ ,n)p_n(x_i)=f(x_i)(i=0,1,\cdots,n)pn(xi)=f(xi)(i=0,1,⋯,n)。但这种插值不能完全反映出被插值函数的性态。在许多实际问题中,不仅要求插值函数与被插值函数在节点处的函数值相同,而且还要求插值函数与被插值函数在某些节点处的导数值,原创 2020-06-19 09:11:37 · 45499 阅读 · 2 评论 -
Lagrange 拉格朗日插值 | matlab实现
function y_p = Lagrange(x, y, x_p)% x为插值节点的横坐标% y为插值节点的纵坐标% x_p 为需计算的插值函数值的横坐标% y_p 为插值函数值num_poly = length(x); % 多项式的项数y_p = []num = length(x_p); % 要计算的插值函数值的个数for j = 1:num p = 0; for i = 1:num_poly nume = 1; % 分子 deno =原创 2020-06-04 23:39:25 · 4055 阅读 · 0 评论 -
Newton插值法 | matlab实现
function y_p = Newton(x, y, x_p)% x为插值节点的横坐标% y为插值节点的纵坐标% x_p 为需计算的插值函数值的横坐标% y_p 为插值函数值i = length(x) - 1;iter = 1;num = length(x_p);y_i = y(1);y_p = [];%for n = 1: num dif_quo = []; % 存放差商 while i > 0 if length(dif_quo) ~=原创 2020-06-04 23:38:20 · 3182 阅读 · 2 评论 -
Newton插值法 | 差商 + Newton插值公式 + 插值余项
Newton插值法Aitken逐次插值法虽然具有承袭性的特点,但其插值公式是递推型的,不便于进行理论分析。为此,可以把n次插值多项式改写成升幂的形式:Nn(x)=c0+c1(x−x0)+c2(x−x)(x−x1)+⋯+cn(x−x0)(x−x1)⋯(x−xn−1)(10)N_n(x)=c_0+c_1(x-x_0)+c_2(x-x)(x-x_1)+\cdots+ c_n(x-x_0)(x-x_1)\cdots(x-x_{n-1}) \tag{10}Nn(x)=c0+c1(x−x0)+c2(x原创 2020-06-03 22:29:56 · 22489 阅读 · 2 评论 -
分段插值法 | 分段线性插值 + 分段抛物插值
分段插值法用多项式作为插值函数来逼近某一函数f(x)f(x)f(x)是最简单易行的一种插值方法,但是插值多项式的次数是随着插值节点的数目而增加的,且次数高的插值多项式往往插值效果并不理想,会出现所谓的Runge现象,即在插值函数pn(x)p_n(x)pn(x)的两端会发生激烈地震荡(不稳定)。为此,在实际应用中常采用分段插值方法。所谓分段插值法就是将被插值函数逐段多项式化,构造一个分段多项式作为插值函数。分段插值:首先,将插值区间划分为若干小段,在每一小段上使用低阶插值;然后,将各小段上的插值多项式原创 2020-06-03 22:26:44 · 13963 阅读 · 0 评论 -
Aitken(埃特金)逐次插值法 | 一次插值、二次插值、k次插值
Aitken(埃特金)逐次插值法判断离散数据(xi,yi)(i=0,1,2,⋯ ,n)(x_i,y_i)(i=0,1,2,\cdots,n)(xi,yi)(i=0,1,2,⋯,n)的插值精度,既可以采用事后误差估计的方法,也可以在插值点x的附近选取部分数据进行插值,然后再增加一些插值节点进行插值。若两次的插值结果之差小于规定的误差,则可认为插值精度复合要求而停止。这种在插值计算精度不够时增加节点(插值多项式的次数一般不宜超过6~8次)以提高插值精度方法就是所谓的逐次插值法。在上述情况中,运用Lagr原创 2020-06-03 22:25:43 · 11226 阅读 · 5 评论 -
插值余项 + 高次插值的Runge现象 | Lagrange拉格朗日插值(二)
1. 插值余项用Lagrange插值公式计算除插值节点以外的某一插值点x处的值,其插值误差为:Rn(x)=f(x)−pn(x)R_n(x)=f(x)-p_n(x)Rn(x)=f(x)−pn(x)该误差实际上就是截断误差,称Rn(x)R_n(x)Rn(x)为Lagrange插值的插值余项。定理2:设x0,x1,⋯ ,xnx_0,x_1,\cdots,x_nx0,x1,⋯,xn为区间[a,b][a,b][a,b]内的n+1个插值节点,而函数f(x)f(x)f(x)在[a,b][a,b][原创 2020-06-03 22:22:55 · 8101 阅读 · 0 评论 -
线性插值、抛物插值、Lagrange插值 | Lagrange拉格朗日插值法(一)
Lagrange(拉格朗日)插值法Lagrange插值法是一种多项式插值方法。1. 线性插值(两点插值或一次插值)线性插值就是通过两个采样点(x0,y0)(x_0,y_0)(x0,y0)和(x1,y1)(x_1,y_1)(x1,y1),作一直线p1(x)p_1(x)p1(x)来近似代替f(x)f(x)f(x)。根据插值条件(定义1),有p1(x0)=y0,p1(x1)=y1p_1(x_0)=y_0, \quad p_1(x_1)=y_1p1(x0)=y0,p1(x1)=y1原创 2020-06-03 22:20:32 · 19272 阅读 · 5 评论 -
数值逼近:插值方法与曲线拟合方法的区别
数值逼近方法:用离散数据的函数表构造某个(简单的)函数g(x)g(x)g(x)去逼近或代替原函数f(x)f(x)f(x)。常见数值逼近方法:插值方法和曲线拟合方法等。1. 插值方法如果观测数据的误差较小,则可将其作为准确值来处理,即观测数据(x,y)(x,y)(x,y)和函数f(x)f(x)f(x)之间存在如下关系:f(xi)=yi,(i=0,1,2,⋯ ,n)f(x_i)=y_i, \quad(i=0,1,2,\cdots,n)f(xi)=yi,(i=0,1,2,⋯,n)因此,要构造的函原创 2020-06-03 22:16:19 · 3435 阅读 · 0 评论 -
牛顿法迭代法 | matlab实现
function Newt(file_name, x0, xmin, xmax, n_points)% file_name 是要进行迭代的函数% x0 是选取的初始值% xmin,xmax分别为图形横坐标的最小和最大值% n_points 是自变量x的采样数clf, hold offwid_x = xmax - xmin;dx = (xmax - xmin) / n_points;xp = xmin: dx: xmax;yp = feval(file_name, xp);plot(x原创 2020-06-03 22:07:09 · 6115 阅读 · 0 评论 -
二分法 | matlab 实现
function bisec(file_name, a, c, xmin, xmax, n_points)% file_name 是要计算的函数% a, c, b 是含根区间上下限和中间值% xmin,xmax 是图形横坐标的最小和最大值% n_points 是自变量X的采样数% Y_a, Y_c 是当前端点的y值% it 是迭代的次数clf, hold offclear Y_a, clear Y_cwid_x = xmax - xmin;dx = (xmax - xmin) /原创 2020-05-27 08:00:08 · 2604 阅读 · 3 评论 -
Newton迭代法的改进 | Newton下山法 + 简化Newton法 + 弦截法
Newton迭代法的改进1. Newton下山法Newton法的收敛性与初值x0x_0x0的选取由很大关系,如果x0x_0x0偏离方程的根x∗x^*x∗太远,则Newton法可能发散或迭代次数增加,因此,有必要对迭代法加以改进。例1:用Newton法求x3−x−1=0x^3-x-1=0x3−x−1=0在x0=1.5x_0=1.5x0=1.5附近的一个根。解:原方程的Newton迭代格式为xk+1=xk−xk2−x−12xk2−1x_{k+1}=x_k-\frac{x_k^2-x-1}{2x_k原创 2020-05-26 21:24:23 · 6326 阅读 · 0 评论 -
Newton牛顿法(二)| 收敛性和收敛速度 +初值的选取方法
收敛性和收敛速度对Newton法的迭代函数即公式(1)取导数,有:φ′(x)=f(x)f′′(x)[f′(x)]2\varphi'(x)=\frac{f(x)f''(x)}{[f'(x)]^2}φ′(x)=[f′(x)]2f(x)f′′(x)假定x∗x^*x∗是f(x)=0f(x)=0f(x)=0的一个单根,即f(x∗)=0,f′(x∗)≠0f(x^*)=0,f'(x^*)\neq 0f(x∗)=0,f′(x∗)=0,则有φ′(x∗)=0\varphi'(x^*)=0φ′(x∗)=0。所.原创 2020-05-26 21:21:39 · 43380 阅读 · 7 评论 -
Newton牛顿法(一)| 基本思想+迭代公式
基本思想与迭代公式通常对已知方程f(x)=0f(x)=0f(x)=0进行变形而构造的迭代函数φ(x)\varphi(x)φ(x)不是惟一的。在实际作用中,如果希望迭代函数φ(x)\varphi(x)φ(x)有一种固定格式的构造方法,就可以采用Newton迭代法。Newton迭代法的基本思想是:设法将一个非线性方程f(x)=0f(x)=0f(x)=0转化为某种线性方程求解,其解决问题的基础是Taylor(泰勒)多项式。具体描述如下:设f(x)=0f(x)=0f(x)=0的近似根为xkx_kxk,则函数原创 2020-05-26 21:18:51 · 36477 阅读 · 1 评论 -
一般迭代法(二)| 迭代法的收敛速度(收敛阶)+收敛过程的加速(Aitken加速法)
1. 迭代法的收敛速度迭代过程的收敛速度,是指迭代误差的下降速度。迭代法的收敛速度一般用收敛阶来描述。定义2:对于收敛的迭代法xk+1=φ(xk),(k=1,2,⋯ )x_{k+1}=\varphi(x_k),(k=1,2,\cdots)xk+1=φ(xk),(k=1,2,⋯),如果存在常数p≥1,c>0p\geq 1,c>0p≥1,c>0,使得limk→∞ek+1ekp=Clim_{k\to\infty}\frac{e_{k+1}}{e^p_k}=Climk→∞ekpe原创 2020-05-26 21:14:54 · 32975 阅读 · 0 评论 -
一般迭代法(一)| 原理公式 + 迭代法的收敛性
一般迭代法1. 基本原理和迭代公式先看一个例子。设有两个函数y=φ(x)y=\varphi(x)y=φ(x)和y=xy=xy=x,欲求其交点x∗x^*x∗。为此,可将函数y=xy=xy=x改写成x=yx=yx=y的形式,并给定一个初始值x0x_0x0,并进行如下计算:(1)先计算函数y=φ(x)y=\varphi(x)y=φ(x)在x0x_0x0处的函数值y0y_0y0,然后计算函数x=yx=yx=y在y0y_0y0处的值x1x_1x1,即:y0=φ(x0),x1=y0y_0=\varp原创 2020-05-20 00:09:02 · 23944 阅读 · 3 评论 -
根的分布区间 | 二分搜索法
这只讨论单个非线性方程f(x)=0f(x)=0f(x)=0的求根问题。方程的根可能是实数根也可能是复(数)根,可能是单根也可能是多重根。关于单根和重根,有如下定义:定义1:对于方程f(x)=0f(x)=0f(x)=0。如果f(x∗)=0f(x^*)=0f(x∗)=0,但它的一阶导数f′(x)≠0f'(x)\neq 0f′(x)=0,则称x∗x^*x∗为方程f(x)=0f(x)=0f(x)=0单根。推而广之,如果f(x∗)=f′(x∗)=f′′(x∗)=⋯=f(k)(x∗)=0f(x^*)=f'(x.原创 2020-05-20 00:05:36 · 2083 阅读 · 0 评论 -
计算方法的稳定性 | 误差来源之舍入误差 | 数值计算基本原则
计算方法的稳定性在实际数值计算过程中,由于不可避免地存在和不断产生各种误差,因此计算结果不是绝对精确的。如果误差使得计算结果和实际情况有较大差别或者出现错误的结果,则数值 计算便失去了价值和意义。因此,分析数值计算过程中误差的来源和传递规律,设法控制和减小误差。1.误差的来源来源:固有误差(模型误差、观测误差)和计算误差(截断误差、舍入误差)舍入误差:设s是r进制数,p是r进制正负整数或零,则形如x=s×rpx=s\times r^px=s×rp并满足−1<s<1-1<原创 2020-05-20 00:03:18 · 7779 阅读 · 0 评论