?? d9r9.cpp
字號:
#include "iostream.h"
#include "math.h"
void fgauss(double x, double a[], double& y, double dyda[], int na)
{
y = 0.0;
for (int i = 1; i<=na - 1; i=i+3)
{
double arg = (x - a[i + 1]) / a[i + 2];
double ex = exp(-(arg * arg));
double fac = a[i] * ex * 2.0 * arg;
y = y + a[i] * ex;
dyda[i] = ex;
dyda[i + 1] = fac / a[i + 2];
dyda[i + 2] = fac * arg / a[i + 2];
}
}
void main()
{
//program d9r9
//driver for roution fgauss
int i,j,na,npt = 3;
int nlin = 2;
double x,y,e1,e2,f;
na = 3 * nlin;
double a[7], dyda[7], df[7];
a[1]=3.0; a[2]=0.2; a[3]=0.5; a[4]=1.0; a[5]=0.7; a[6]=0.3;
cout<<" x y data1 data2 data3 data4 data5 data6";
for (i = 1; i<=npt; i++)
{
x = 0.3 * i;
fgauss(x, a, y, dyda, na);
e1 = exp(-pow(((x - a[2]) / a[3]) , 2));
e2 = exp(-pow(((x - a[5]) / a[6]), 2));
f = a[1] * e1 + a[4] * e2;
df[1] = e1;
df[4] = e2;
df[2] = a[1] * e1 * 2.0 * (x - a[2]) / (a[3] * a[3]);
df[5] = a[4] * e2 * 2.0 * (x - a[5]) / (a[6] * a[6]);
df[3] = a[1] * e1 * 2.0 * ((x - a[2]) * (x - a[2])) / (pow(a[3] , 3));
df[6] = a[4] * e2 * 2.0 * ((x - a[5]) * (x - a[5])) / (pow(a[6] , 3));
cout.setf(ios::fixed|ios::right);
cout.precision(4);
cout<<endl;
cout<<"from fgauss"<<endl;
cout.width(9);
cout<<x;
cout.width(9);
cout<<y;
for (j = 1; j<=6; j++)
{
cout.width(9);
cout<<dyda[j];
}
cout<<endl;cout<<endl;
cout<<"independent calc."<<endl;
cout.width(9);
cout<<x;
cout.width(9);
cout<<f;
for (j = 1; j<=6; j++)
{
cout.width(9);
cout<<df[j];
}
cout<<endl;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -