📄 cpp1.cpp
字号:
#include <stdio.h>
#include <math.h>
double x[100];
double y[100];
double z[100];
double wucha[100];
double h;
void x_input(int n)
{
int i;
for(i=0;i<=n;i++)
x[i]=2*3.141592653*i/n;
return;
}
double f(double y,double t)
{
double result;
result=sin(y+t)+cos(t)-sin(sin(t)+t);
return result;
}
void y_standard(int n)
{
int i;
for(i=0;i<=n;i++)
y[i]=sin(x[i]);
return;
}
void z_calculate(int n)
{
int i;
double k1,k2,k3,k4;
z[0]=0.0;
for(i=1;i<=n;i++)
{
k1=f(x[i-1],z[i-1]);
k2=f(x[i-1]+h/2,z[i-1]+h/2*k1);
k3=f(x[i-1]+h/2,z[i-1]+h/2*k2);
k4=f(x[i-1]+h,z[i-1]+h*k3);
z[i]=z[i-1]+h/6*(k1+2*k2+2*k3+k4);
}
return;
}
void wucha_calculate(int n)
{
int i;
for(i=0;i<=n;i++)
wucha[i]=fabs(y[i]-z[i]);
return;
}
void fanshu_1(int n)
{
int i;
double average=0.0;
for(i=0;i<=n;i++)
average=average+wucha[i];
average=average/n;
printf("所有误差的一范数为%f",average);
return;
}
void fanshu_infinte(int n)
{
int i;
double max;
max=wucha[0];
for(i=1;i<=n;i++)
if(wucha[i]>max)
max=wucha[i];
printf("所有误差的无穷范数为%f",max);
return;
}
void main()
{
int n,i;
printf("输入分割份数n=");
scanf("%d",&n);
h=3.141592653*2/n;
x_input(n);
y_standard(n);
z_calculate(n);
wucha_calculate(n);
fanshu_1(n);
printf("\n");
fanshu_infinte(n);
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -