数值分析
飞花舞者
肾透爱好者,专注肾透。喜欢的东西太多了,慢慢搞吧!
展开
-
线性方程组的直接法——高斯消去法
高斯消去法解方程组:程序流程图如下:代码如下:/*------------解线性方程组----------------***************高斯消去法*******************-------------Analysis---------------------*1.a存放方程组系数,b存放方程组值*2.高斯消去法分消元与回代两个过程**********************************/#include<iostream>using n原创 2021-06-01 17:33:15 · 2091 阅读 · 0 评论 -
线性方程组的直接法——约当消去法
约当消去法解方程组如图:程序流程图如图:/*------------解线性方程组----------------***************约当消去法*******************-------------Analysis---------------------*1.a存放方程组系数,b存放方程组值***********************************/#include<iostream>//#include<vector>usi原创 2021-06-01 16:55:31 · 718 阅读 · 0 评论 -
常微分方程的查分方法——改进的欧拉方法
程序流程图如下://常微分方程的差分方法——改进的欧拉方法——求解初值问题 /************Analysis************** *1.h:步长,N:步数,迭代次数,x0,y0为老值,x1,y1为新值 *f(x)=y-2x/y *y(0)=1 **************************/#include<iostream>using namespace std;double f(double x,double y){ return y-2*x/原创 2021-05-24 19:34:32 · 253 阅读 · 0 评论 -
方程求根的迭代法——牛顿迭代法
用牛顿法解方程xe(x) -1=0程序流程图如下://方程求根的迭代法——牛顿迭代法/*************Analysis***********1.初值x0,精度e,迭代次数N*2.牛顿法解方程f(x)=x*e**x-1*3.取初值为0.5********************************/#include<iostream>#include<math.h>using namespace std;//原函数double f(double原创 2021-05-24 19:27:32 · 3223 阅读 · 0 评论 -
线性方程组迭代法之高斯-赛德尔迭代法
/********高斯-赛德尔迭代法**********--------------分析--------------*1.Xi为每一步迭代的初值,X1=X2=X3=0,Yi存放迭代结果,temp[i]保存迭代过程中x的老值*2.迭代精度e,max|tempi-Yi|,1<=i<=n*3.最大迭代次数N*4.输入数据:*(1)Bi:方程组的值*(2)Aij:方程组变量系数*/#include<iostream>#include<math.h>using原创 2021-05-12 09:09:35 · 5046 阅读 · 0 评论 -
线性方程组迭代法—雅克比迭代法C++
此例子使用三个变量、三个方程的情况,如需讨论多个的情况,使用vector稍加修改即可。使用的方程组如下:每次迭代的值如下:程序流程图:程序代码:/********雅克比迭代法**********1.Xi为每一步迭代的初值,X1=0,Yi存放迭代结果*2.迭代精度e,max|Xi-Yi|,1<=i<=n*3.最大迭代次数N*4.输入数据:*(1)Bi:方程组的值*(2)Aij:方程组变量系数*/#include<iostream>#include&l原创 2021-05-11 17:33:55 · 3409 阅读 · 0 评论 -
龙贝格求积算法
函数f(x)=sinx/x,区间[0,1]算法流程图如图:/*-------------Analysis----------------------*龙贝格算法求积分*1.函数f(x)=sinx/x,区间[0,1]*2.输入a,b,e;其中a,b为区间[a,b],e为精度*3.T为复化梯形公式,S为辛甫生公式,C为复化科特斯公式*4.h为步长 x为求积节点,k为加速次数*5.输出R2-----------------------------------*/#include<io原创 2021-04-26 19:59:40 · 2386 阅读 · 0 评论 -
变步长梯形法求积分
函数f(x)=sinx/x,算法流程图如图:C++代码如下:/**1.给定函数f(x)=sinx/x*2.给定区间[a,b]和精度e=0.005*3.更新步长*/#include<iostream>#include<math.h>using namespace std;double f(double x){ if(x==0) return 1; return sin(x)/x;}int main(){ double a,b;//[a,b] d原创 2021-04-19 21:48:46 · 1458 阅读 · 0 评论 -
复化辛甫生公式求积
函数f(x)=sinx/x,区间[0,1]/*1.输入求积区间[a,b]2.输入划分数量n3.求得步长h=(b-a)/n4.第一子段中点值:a+h/2,第二子段中点:第一子段中点+h。后一个子段中点=前一个子段中点+h5.分点值:a,a+h,a+2h,---,a+nh6.函数f(x)*/#include<iostream>#include<math.h>using namespace std;//one x corresponds to one ydoubl原创 2021-04-12 22:55:41 · 1017 阅读 · 0 评论 -
牛顿插值法
利用牛顿的插值公式求出n次插值的结果//Newton interpolation//拉格朗日插值Lagrange Interpolation#include<iostream>#include<vector>using namespace std;//get f(xi,xi+1) valuefloat getf(vector<float>x,int i,vector<float>y){ return (y[i]-y[i-1])/(x[i]-原创 2021-03-30 00:31:51 · 330 阅读 · 0 评论 -
拉格朗日插值求n次插值
//拉格朗日插值Lagrange Interpolation#include<iostream>#include<vector>using namespace std;//get interpolation basis functions//x is special valuevector<float> getBasisFunc(vector<float>x_var,vector<float>y_var,float x){ vect原创 2021-03-22 18:37:37 · 891 阅读 · 0 评论 -
数值分析二分法求方程的根
//二分法求方程的根#include<iostream>using namespace std;float X_value(int n,float X){ //cout<<"X:"<<X<<endl; if(0==n) return 1.0; else if(1==n) return X; return X*X_value(n-1,X);}float Get_value(float temp,int n,float A,float原创 2021-03-15 20:16:35 · 422 阅读 · 0 评论