学数值分析怎样进行编程

2024-11-30 12:26:58
推荐回答(4个)
回答(1):

当然可以用来编程了,比如数值分析中的龙贝格(Romberg)求积分的算法如下:
#include "iostream"
#include "cmath"
#include "iomanip"
using namespace std;
#define N 20
#define e 1E-10
typedef double TYPE;

TYPE f(TYPE x) {
if (x==0) return 1.0;
return sin(x)/x;
}

double T2n(double a,double b,int n=0,double Tn=0) {
double New=0;
double h;
if (n==0) {
h = b-a;
return (f(a)+f(b))*h/2;
}
h = (b-a)/n;
double x = a+h/2;
while (x New += f(x);
x += h;
}
return (Tn+h*New)/2;
}

double Romberg(double a,double b) {
double T1,T2,S1,S2,C1,C2,R1,R2;
int k = 0,n=1;
cout< cout<<"k "<<"T "<<" S "<<" C "<<" R "< T1 = T2n(0,1);
cout< do {k++;
T2 = T2n(0,1,n,T1);
cout< S2 = (4*T2-T1)/3;
cout< if (k!=1) {
C2 = (16*S2-S1)/15;
cout< if (k!=2) {
R2 = (64*C2-C1)/63;
cout< if (k!=3 && fabs(R2-R1) cout<<"\n\n迭代次数: "< return R2;
}
R1=R2;
}
C1=C2;
}
S1=S2;
T1 = T2;
n*=2;
// k++;
cout< }while (k if (k==N) cout<<"\n迭代超过次数!!!\n"< return 0;
}

int main ()
{
cout< <<"最终结果为: "
< return 1;
}

//////////////////////////////
求得是f(x)=sin(x)/x从0-1上的积分.
总之数值分析很有用的,能解决许多现实中的数值问题。数学家们给出数学理论,数值分析将它们真正的应用到实际中。
许多图像处理的算法中都用到数值分析。

回答(2):

说实话,这个和编程还真没有直接关系。算是打好数学基础,为算法做准备。

回答(3):

主要是编程语言要熟练掌握,其次有一些有关的算法分析的基础更好

回答(4):

你去参考一下matlab