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

📄 1.cpp

📁 几个数值分析算法的实现 包括三次样条插值、最小二乘法、高斯插值、adam、龙贝格算法等
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>
double fx(double x,double y)//已知一阶方程
{
	return (y-2*x/y);
}
void main()
{
	double h,*y,*x,*f,K[4],yp,fp;
	int n,i;
	printf("输入步长h 步数n:");
	scanf("%lf%d",&h,&n);
	x=(double *)malloc((n+1)*sizeof(double));
	y=(double *)malloc((n+1)*sizeof(double));
	f=(double *)malloc((n+1)*sizeof(double));
	printf("输入初值x y:");
	scanf("%lf%lf",x,y);
	for(i=0;i<n;i++)
		x[i+1]=x[i]+h;
	for(i=0;i<3;i++)
	{
		K[0]=fx(x[i],y[i]);
		K[1]=fx(x[i]+h/2.0,y[i]+h*K[0]/2.0);
		K[2]=fx(x[i]+h/2.0,y[i]+h*K[1]/2.0);
		K[3]=fx(x[i]+h,y[i]+h*K[2]);
		y[i+1]=y[i]+h*(K[0]+2*K[1]+2*K[2]+K[3])/6.0;
	}//用龙格-库塔计算启动值
	for(i=0;i<4;i++)
		f[i]=fx(x[i],y[i]);
	i=0;
	while(i+4<=n)
	{
		yp=y[i+3]+h*(55*f[i+3]-59*f[i+2]+37*f[i+1]-9*f[i])/24;
		fp=fx(x[i+4],yp);
		y[i+4]=y[i+3]+h*(9*fp+19*f[i+3]-5*f[i+2]+f[i+1])/24;
		f[i+4]=fx(x[i+4],y[i+4]);
		i++;
	}//预测校正方法
	printf("x        y\n");
	for(i=0;i<=n;i++)
		printf("%0.2lf\t%lf\n",x[i],y[i]);
}

	

⌨️ 快捷键说明

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