完成日期:2023年12月20日。
小组成员:学号姓名。
学号姓名。学号姓名。
常微分初值问题如下:
请用euler方法、四阶经典runge-kutta格式和四阶adams方法求解。要求:任选一种方法,但希望得到“优秀”成绩的小组必须完成后两种求解方法。
完成四阶经典runge-kutta、四阶adams】
二、程序流程图。
三、完整的程序及简要的注释。
四阶经典runge-kutta】
#include <>
#include <>
# define n 40
int pos(int n, int m)
double f(double x,double y)
return y-2*x/y; /定义函数f(x,y)
void rungekutta(double a,double b, double h)
printf("经典四阶runge-kutta算法:");
float** p;float** p1;
double x[n],y[n];
p = float**)x;p1 = float**)y;
printf("n\tx[n]\t y[n]");
printf("0\t0.000000\t1.000000");
double k1,k2,k3,k4;
int n=1;
while(n<=n)
x[0]=a;y[0]=b;
x[n]=x[n-1]+h;
k1=f(x[n-1],y[n-1]);四阶runge-kutta算法。
k2=f(x[n-1]+h/2,y[n-1]+h*k1/2);
k3=f(x[n-1]+h/2,y[n-1]+h*k2/2);
k4=f(x[n-1]+h,y[n-1]+h*k3);
y[n]=y[n-1]+h/6*(k1+2*k2+2*k3+k4);
printf("%d\t%lf\t%lf",n,x[n],y[n]);
n++;int main(void初值输入
rungekutta(0,1,0.025);
return 0;
四阶adams】
#include <>
#include <>
# define n 40
int pos(int n, int m)
double f(double x,double y)
return y-2*x/y; /定义函数f(x,y)
void rungekutta(double a,double b, double h)
printf("四阶adams算法:");
float** p;float** p1;
double x[n],y[n];
p = float**)x;p1 = float**)y;
printf("n\tx[n]\t y[n]");
printf("0\t0.000000\t1.000000");
double k1,k2,k3,k4;
int n=1;
while(n<=3)
x[0]=a;y[0]=b;
x[n]=x[n-1]+h;
k1=f(x[n-1],y[n-1]);四阶runge-kutta算法。
k2=f(x[n-1]+h/2,y[n-1]+h*k1/2);
k3=f(x[n-1]+h/2,y[n-1]+h*k2/2);
k4=f(x[n-1]+h,y[n-1]+h*k3);
y[n]=y[n-1]+h/6*(k1+2*k2+2*k3+k4);
printf("%d\t%lf\t%lf",n,x[n],y[n]);
n++;int m=4;
while(m<=n)
x[m]=x[m-1]+h四阶adams算法。
y[m]=y[m-1]+h/24*(55*f(x[m-1],y[m-1])
59*f(x[m-2],y[m-2])
37*f(x[m-3],y[m-3])
9*f(x[m-4],y[m-4]))
printf("%d\t%lf\t%lf",m,x[m],y[m]);
mint main(void初值输入
rungekutta(0,1,0.025);
return 0;
四、程序运行结果。
以下部分是手写的部分】
五、对不同实现方法的运行结果进行比较。
六、问题与总结(必须给出自评成绩a/b/c/d)
写出简要总结】
自评成绩: 】
一、计算公式及计算方法(手写在作业最后即可)
工程常用算法综合实践作业
工程常用算法 综合实践作业三。完成日期 年月日。一 作业题目。用复化simpson 复化cotes和复化romberg公式计算,精确到小数点后12位,比较不同方法的计算结果。二 程序流程图。sinpson法。科斯特法。龙贝格法。三 完整的程序及简要的注释。辛普森法。function simpson ...
《工程常用算法》综合实践作业一
完成日期 2010年11月15日。小组成员 学号姓名。学号姓名。学号姓名。已知方程,请用二分法 牛顿法和割线法求此方程实根的近似值,使误差不超过0.0001。注意先确定出方程的有根区间。完成二分法 牛顿法 割线法 二 程序流程图。三 完整的程序。1 二分法 include include doubl...
《工程常用算法》综合实践作业一
哈尔滨工程大学机电工程学院。综合实践大作业。2015年 7 月 10 日。作业名称 非线性方程求根完成日期 15 年 6月 1日。已知方程,请分别用二分法 牛顿法和割线法求此方程的根。误差限取 注意先确定出方程的有根区间。f 0 0 0 1 0 f 1 1 2 e 0 所以在区间 0,1 内有根。2...