RK
2015-09-17 11:57
316 查看
//IEulerRK.cpp--Improved Euler and Runge-Kutta(4) //qiu changweifen fangcheng shuzhijie #include < stdio.h > #include < math.h > #define FMT "%-15.7g" typedef double dbl; //prototypes dbl fxy(dbl x, dbl y); dbl f(dbl x); void RK(dbl x0, dbl y0, dbl b, dbl h); int main() { printf("\nRunge-Kutta:\nh=0.1:\n"); RK(0.0, 1.0 / 3.0, 1.0, 0.1); printf("\nh=0.025:\n"); RK(0.0, 1.0 / 3.0, 1.0, 0.025); printf("\nh=0.01:\n"); RK(0.0, 1.0 / 3.0, 1.0, 0.01); return 0; } dbl fxy(dbl x, dbl y) { return ( - 50 * y + 50 * x * x + 2 * x); } dbl f(dbl x) { return (exp( - 50 * x) / 3.0 + x * x); } void RK(dbl x0, dbl y0, dbl b, dbl h) { dbl k1, k2, k3, k4; dbl xn, yn; printf("xn yn y(xn) \n"); xn = x0; yn = y0; while (xn <= b - 1e-7) { k1 = fxy(xn, yn); k2 = fxy(xn + h / 2.0, yn + k1 * h / 2.0); k3 = fxy(xn + h / 2.0, yn + k2 * h / 2.0); k4 = fxy(xn + h, yn + k3 * h); yn = yn + (k1 + 2 * k2 + 2 * k3 + k4) * h / 6; xn += h; printf(FMT, xn); printf(FMT, yn); printf(FMT, f(xn)); printf("\n"); } }
相关文章推荐
- 使用docker模拟并发访问服务器
- mvc中实现异步刷新页面
- Hadoop 笔记之创建自定义分区
- HDU 2571 命运
- qyz
- OpenCV的IplImage转bmp
- mysql 修改root密码
- 机器学习中距离和相似性度量方法(比较全)
- wifi伴侣如何打造wifi众联开放平台这座殿堂
- 自适应解决方案
- HTML之h1 h2 h3 h4标签知识经验篇
- JS获取request参数 和改变request参数
- 关于Fedora 22在虚拟机中的安装详解
- iOS 集成银联支付(绕过文档的坑,快速集成)
- return函数
- error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
- PowerDesigner让名称和code分离显示
- 关于java.lang.IllegalMonitorStateException
- Linux进程间同步与通信
- Newtonfa