⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cnl.cpp

📁 包含了三个工程
💻 CPP
字号:
#include <imsl.h>
#include <stdio.h>
#include <math.h>
#define NDATA 90
/* Define function */
#define F(x) (float)(1.+ sin(x)+7.*sin(3.0*x))
float fcn(int n, float x);

main()
{
	float coef1[]={0,0,0,0};
	float weights[NDATA];
	for (int n=0; n< NDATA; n++)
	{
		weights[n]=1-(n-45)*(n-45)/(45*45);
	}
	int nbasis = 4, i, delta;
	float ydata[NDATA], xdata[NDATA], *random, *coef;
	/* Generate random numbers */
	imsl_random_seed_set(1234567);
	random = imsl_f_random_uniform(NDATA, 0);
	/* Set up data */
	for(delta = 0; delta < 2; delta++) {
	for (i = 0; i < NDATA; i++) {
		xdata[i] = 6.*(float)i /((float)(NDATA-1));
		ydata[i] = F(xdata[i]) + (delta)*2.*(random[i]-.5);
	}
	printf("xdata\n");
	for (i = 0; i < NDATA; i++) {
		printf("%f ",xdata[i]);
	}
	printf("\n\nydata\n");
	for (i = 0; i < NDATA; i++) {
		printf("%f ",ydata[i]);
	}
	coef = imsl_f_user_fcn_least_squares(fcn, nbasis, NDATA, xdata,
	ydata, IMSL_RETURN_USER, coef1,IMSL_WEIGHTS,weights,0);
	for (n=0;n<4;n++)
	{
		printf("\n%f",coef1[n]);
	}
	printf("\nFor delta = %1d", delta);
	imsl_f_write_matrix("the computed coefficients are\n",
	1, nbasis, coef, 0);
	}
}
float fcn(int n, float x)
{
	return (n == 1) ? 1.0 : sin((n-1)*x);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -