数值方法
崔小菜
人生30迷茫中前行
展开
-
求解常微分方程初值问题之多变量Runge_Kutta_Gill法
//用RKG法求解常微分方程组#include #include #include #include using namespace std;class s_ode{private: int i, j, l, n; double a, b, c, d, h, x, x1, xi, xf; double *b1, *b2, *b3, *g, *y, *y1转载 2013-08-13 11:09:29 · 1792 阅读 · 0 评论 -
Bessel函数
//计算第一类和第二类的0阶和1阶Bessel函数#include #include #include using namespace std;double const pi = 3.141592653589793;class bessel{private: double f0, f1, j0, j1, p, q, theta0, theta1, x, y0,转载 2013-08-08 13:26:33 · 1799 阅读 · 0 评论 -
有理逼近的误差函数
//有理逼近的误差函数#include #include using namespace std;class erf{private: int i, n; double F, p, t, x; double a[5];public: void err_fn();};void main(){ erf err0; err0.err_fn(转载 2013-08-08 13:25:04 · 631 阅读 · 0 评论 -
给定函数的Chebyshev逼近
//计算给定函数的Chebyshev逼近#include #include #include #include using namespace std;const double pi = 3.141592653589793;class chebyshev{private: int div, i, j, n; double a, b, func, F, s转载 2013-08-08 13:24:15 · 1392 阅读 · 0 评论 -
Gamma函数
//计算Gamma函数值#include using namespace std;class gamma{private: int i, n; double F, prod, result, x, y; double a[25];public: double gamma_fn(double); void solution();};void mai转载 2013-08-08 13:25:50 · 2547 阅读 · 0 评论 -
当一个零点已知时降低多项式阶的综合除法
//当一个零点已知时降低多项式阶的综合除法#include using namespace std;class synthetic{private: int i, n; double root; double *a, *b;public: void synthetic_division(); ~synthetic() { delete[] a,转载 2013-08-07 21:50:03 · 655 阅读 · 0 评论 -
逐次代入法求解非线性方程
//用逐次代入法求解非线性方程#include #include #include using namespace std;class successive{private: int iteration; double eps, error, f, x_new, x_old;public: successive() { iteration =转载 2013-08-07 21:49:22 · 654 阅读 · 0 评论 -
割线法求解非线性方程
//用割线法求解非线性方程#include #include #include using namespace std;class secant{private: int iteration; double eps, error, f, x_new, x_old1, x_old2;public: secant() { iteration = 0转载 2013-08-07 21:48:45 · 3590 阅读 · 0 评论 -
Lin法求解多方式方程共轭复根
//用Lin法求解多方式方程共轭复根#include #include #include using namespace std;class lin{private: int flag, iteration, iteration_max, k, n; double eps, gamma, delta, r1, r2, *a, *b;public: lin转载 2013-08-07 21:45:32 · 1434 阅读 · 0 评论 -
计算在指定点处多项式及其一阶导数值
//计算在指定点处多项式及其一阶导数值#include using namespace std;class horner{private: int i, n; double deriv, F, x; double *a;public: horner() { deriv = 0; } void polynom(); ~horner()转载 2013-08-07 21:48:11 · 946 阅读 · 0 评论 -
Newton_Raphson法求解非线性方程组
//用Newton_Raphson法求解非线性方程组#include #include #include #include using namespace std;class multivariable{private: int epsilon, i, iteration, j, k, n, *pivrow, **pivcol; double df0_0,转载 2013-08-07 21:47:32 · 1221 阅读 · 0 评论 -
Newton-Raphson法求解非线性方程复根
//用Newton-Raphson法求解非线性方程复根#include #include #include using namespace std;class raphson{private: int iteration, flag; double eps, error1, error2, f_u, f_v, f_u_alpha, f_u_beta; dou转载 2013-08-07 21:46:53 · 871 阅读 · 0 评论 -
数值积分之Gauss求积法五点公式
//Gauss求积法五点公式#include #include using namespace std;class quadrature{private: int i; double a, b, f, integral, sum; double w[5], x[5];public: double func(double r) { f = 8.1转载 2013-08-08 18:38:59 · 9221 阅读 · 0 评论 -
数值积分之Newton_Cotes闭合积分公式
//Newton_Cotes闭合积分公式#include #include using namespace std;class trapezoidal{private: int n, k; double a, b, f, h, integral, sum;public: double func(double v) { f = 24.6 / (v -转载 2013-08-08 18:37:35 · 1836 阅读 · 0 评论 -
求解常微分方程初值问题之Runge_Kutta_Fehlberg法
//用Runge_Kutta_Fehlberg法求解微分方程#include #include #include #include using namespace std;class rkf{private: int flag; double eps, error, f, h, hnew, x, xf, y, yold; double k1, k2, k转载 2013-08-13 11:07:47 · 2011 阅读 · 0 评论 -
求解常微分方程初值问题之Runge_Kutta法
//用RKG法求解微分方程#include #include #include using namespace std;class rkg{private: int i, n; double a, b, c, d, f, h, k1, k2, k3, k4, x, xf, y;public: double func(double z, double t)转载 2013-08-13 11:06:55 · 1012 阅读 · 0 评论 -
求解常微分方程初值问题之改进Euler法:预报-校正公式
//实现Euler预报_校正法#include #include #include using namespace std;class euler{private: int i, n; double f, h, x, x_last, yc, yp;public: double func(double z, double t) { f = (1转载 2013-08-13 11:05:28 · 3770 阅读 · 0 评论 -
求解常微分方程边值问题之试射法
//用试射法求解边值问题#include #include #include #include using namespace std;class s_ode{private: int i, j, l, n; double a, b, c, d, h, x, x1, xi, xf; double *b1, *b2, *b3, *g, *y, *y1;转载 2013-08-13 11:12:44 · 1350 阅读 · 0 评论 -
求解常微分方程初值问题之多步Euler预报-校正法
//实现多步Euler法#include #include #include using namespace std;class multi_euler{private: int i, n; double f, h, x, x_last, yc, yc_old, yp;public: double func(double z, double t) {转载 2013-08-13 11:10:42 · 1240 阅读 · 0 评论 -
Richardson外推法计算给定点处的一阶和二阶导数
//计算给定点处的一阶和二阶导数#include #include using namespace std;class deriv{private: int k; double d1, d1_1, d1_2, d2, d2_1, d2_2, d1_new, d2_new; double f_x, f_xhm, f_x2hm, f_xhp, f_x2hp, h,转载 2013-08-13 11:03:17 · 3924 阅读 · 0 评论 -
求解常微分方程初值问题之Milne预报-校正法
//实现Milne预报-校正法#include #include #include using namespace std;class milne{private: int i, n; double f, h, x, x_last, y, y1, y2, y3, yc, yp; double f0, f1, f2;public: double fun转载 2013-08-13 11:11:32 · 1656 阅读 · 0 评论 -
数值积分之Simpson 3/8法则
//实现Simpson 3/8法则#include #include using namespace std;class simpson2{private: int n, k; double a, b, f, integral, interval, one_third_interval; double sum_term1, sum_term2, sum_term转载 2013-08-08 18:40:58 · 2710 阅读 · 0 评论 -
数值积分之Romberg求积法
//Romberg求积法#include #include #include using namespace std;class romberg{private: int i, j, imax, jmax; double f, h, a, b, term1, term2, **I;public: double func(double x) {转载 2013-08-08 18:39:42 · 1561 阅读 · 0 评论 -
数值积分之Simpson 1/3法则
//实现Simpson 1/3法则#include #include using namespace std;class simpson{private: int n, k; double a, b, f, half_interval, integral, interval, sum_even_terms; double sum_odd_terms, x;p转载 2013-08-08 18:40:23 · 2418 阅读 · 0 评论 -
Newton_Raphson法求解非线性方程
//用Newton_Raphson法求解非线性方程#include #include #include using namespace std;class raphson{private: int iteration; double eps, error, f, df, x_new, x_old; double pi, sigma, epsilon, h,转载 2013-08-07 21:46:11 · 1088 阅读 · 0 评论 -
Graeffe法求解多项式方程单实根
//用Graeffe法求解多项式方程单实根#include #include #include using namespace std;class graeffe{private: int flag, i, iteration, iteration_max, k, n; double eps, pp, pm, root, sum, upper_limit, lo转载 2013-08-07 21:44:55 · 1194 阅读 · 0 评论 -
试位法求解非线性方程
//用试位法求解非线性方程#include #include #include using namespace std;class falsi{private: int iteration; double eps, error, f, f_low, f_high, f_new, x_low, x_high, x_new; double d, fric, Q,转载 2013-08-07 21:43:30 · 1381 阅读 · 0 评论 -
求解线性方程组之Cholesky分解
//Cholesky分解求解对称正定矩阵#include #include #include using namespace std;class cholesky{private: int i, j, k, n; double sum, *b, *d, *x, **a;public: void cholesky_input(); void chole转载 2013-07-22 11:19:58 · 2009 阅读 · 0 评论 -
求解线性方程组之Gauss-Jordan消去法求矩阵的逆
//用具有最大主元素的Gauss-Jordan消去法求矩阵的逆#include #include #include #include using namespace std;class inverse{private: int i, j, k, n, flag, scani, scanj, *row, *col; double eps, sum, pivot转载 2013-07-22 11:22:26 · 1879 阅读 · 0 评论 -
求解线性方程组之Gauss_Seidel迭代法求解对角线占绝对优势的系统
//Gauss_Seidel迭代法求解对角线占绝对优势的系统#include #include using namespace std;class seidel{private: int i, j, n, flag, iteration; double xold, error, sum, eps; double *x, *b, **a;public: s转载 2013-07-22 11:26:50 · 893 阅读 · 0 评论 -
求解线性方程组之LU分解
//具有列选主元和从前到后代入的LU分解#include #include #include using namespace std;class lu{private: int i, j, k, n, *pivrow; double eps, pivot, sum, a1, a2, *b, **a;public: void lu_input(); v转载 2013-07-22 11:18:32 · 942 阅读 · 0 评论 -
求解线性方程组之全选主元高斯消元法
//全选主元Gauss消去法#include #include #include #include using namespace std;class gauss{private: int i, j, k, n, *pivrow, **pivcol; double eps, pivot, sum, aik, al, *x, **a;public: v转载 2013-07-22 11:16:37 · 1411 阅读 · 0 评论 -
求解线性方程组之高斯消元法
// Gauss消去法求解线性方程组#include #include #include using namespace std;class gauss{private: int i, j, k, n; double eps, ratio, sum, *x, **a;public: void gauss_input(); void gauss_eli转载 2013-07-22 11:14:22 · 654 阅读 · 0 评论 -
插值法之Lagrange插值
//Lagrange插值法#include #include using namespace std;class lagrange{private: int i, j, n; double mult, sum, z; double* x, * y;public: void interpolation(); ~lagrange() { del转载 2013-07-16 22:15:28 · 736 阅读 · 0 评论 -
数据排序之快速排序法
//用快速排序法对数组元素进行排序#include using namespace std;class qusort{private: int i, n, l_h, pivot_loc, r_h; double pivot; double *x;public: void quicksort(double *, int, int); void sortin转载 2013-07-16 22:21:58 · 561 阅读 · 0 评论 -
数据排序之Shell排序法
//用Shell排序法对数组元素进行排序#include using namespace std;class ssort{private: int h, i, j, n; double temp; double *x;public: void shell_sort(double *, int); void sorting(); ~ssort()转载 2013-07-16 22:20:59 · 586 阅读 · 0 评论 -
数据排序之插入排序法
//用插入排序法对数组元素进行排序#include using namespace std;class isort{private: int i, j, n; double temp; double *x;public: void insertion_sort(double *, int); void sorting(); ~isort() {转载 2013-07-16 22:19:58 · 456 阅读 · 0 评论 -
数据排序之冒泡排序法
//用冒泡排序对数组元素进行排序#include using namespace std;class bsort{private: int i, j, n, flag; double temp; double *x;public: void bubblesort(double *, int); void sorting(); ~bsort() {转载 2013-07-16 22:18:16 · 539 阅读 · 0 评论 -
求解线性方程组之Gauss_Jordan消去法
//具有最大主元素的Gauss_Jordan消去法求解线性方程组#include #include #include using namespace std;class jordan{private: int i, j, k, n, flag, scani, scanj, *row, *col; double eps, pivot, aijcolk, *x, *转载 2013-07-22 11:21:30 · 1248 阅读 · 0 评论 -
求解线性方程组之超松弛Gauss_Seidel迭代
//超松弛Gauss_Seidel迭代#include #include using namespace std;class relaxation{private: int i, j, n, flag, iteration; double error, sum, eps, w; double *x, *xold, *b, **a;public: rela转载 2013-07-22 11:24:05 · 673 阅读 · 0 评论