欧拉、改进欧拉、四阶龙格-库塔
来源:互联网 发布:淘宝开个什么店赚钱 编辑:程序博客网 时间:2024/04/29 09:45
取h=0.1时用Euler法,改进Euler法,Rung-Kutta方法求其数值解并与精确解进行比较。
输入:求解区间,初值,数值解个数
输出:数值解
代码
#include<stdio.h>#include<math.h>#define f(y,x) (y-((2*x)/y))#define F(y,x) (y-(2*x/y))#define ff(y,x) (y-(2*x/y))#define y(x) (sqrt(1+2*x))int main(){ int i,n=10; double h,a,b,y0,y1,y2,y3,x,k1,k2,n1,n2,n3,n4; printf("左区间:");scanf("%lf",&a); printf("右区间:");scanf("%lf",&b); printf("初值:") ;scanf("%lf",&y0); printf("数值个数:");scanf("%d",&n); y1=y2=y3=y0; x=a; h=(b-a)/n; printf("x\t\ty(4阶龙格)\ty(改进)\t\ty(欧拉)\t\ty(精确)\n"); printf("%lf\t%lf\t%lf\t%lf\t%lf\n",x,y3,y2,y1,y(x)); for(i=1;i<=n;i++) { n1=h*ff(y3,x); n2=h*ff((y3+n1/2),(x+h/2)); n3=h*ff((y3+n2/2),(x+h/2)); n4=h*ff((y3+n3),(x+h)); y3=y3+(n1+2*n2+2*n3+n4)/6; //4阶龙格 k1=h*F(y2,x); k2=h*F((y2+k1),(x+h)); y2=y2+(k1+k2)/2; //改进欧拉和二阶龙格 y1=y1+h*f(y1,x); //欧拉 x=x+h; printf("%lf\t%lf\t%lf\t%lf\t%lf\n",x,y3,y2,y1,y(x)); } return 0;}
欧拉、改进欧拉、四阶龙格-库塔是比较简单的,只要理解其中的公式那就很好办啦
1 0
- 欧拉、改进欧拉、四阶龙格-库塔
- 改进欧拉算法
- 欧拉计划第一题(改进版)
- 改进的欧拉格式法
- 欧拉
- 欧拉
- 欧拉
- 欧拉
- 欧拉
- 欧拉公式和改进的欧拉公式C++源码
- matlab中四阶龙格库塔算法、欧拉算法和改进的欧拉算法的总结
- 改进的欧拉格式求解一阶微分的初值问题
- 欧拉项目——Problem21(改进版)
- 欧拉回路 欧拉通路 欧拉回路图
- 欧拉图 欧拉回路 欧拉通路
- 欧拉函数与欧拉定理
- 欧拉回路与欧拉道路
- 欧拉函数与欧拉定理
- buntu系统下python2.7和python3.5版本切换,更改系统和eclipse中python默认版本
- win32的输出int类型
- Spring之—— Spring-Cache key设置注意事项
- CodeForces
- openstack配额
- 欧拉、改进欧拉、四阶龙格-库塔
- java记录二
- 大数据-数据处理流程
- Ubuntu下对PyCharm-2016.3.2破解(转)
- Actions, Controllers and Results(翻译)
- ContentProvider工程之间的调用
- JSP编码以及乱码解决总结
- Ubuntu 安装MySQL 远程访问
- Mongo多个Collection的关联操作实现