[算法] [常微分方程] [欧拉法 改进欧拉法 经典R-K算法]

news/2024/7/7 18:56:42


 

复制代码
 1 #include<iostream>
 2 #include<cmath>
 3 #include<cstdio>
 4 #include<iomanip>
 5 using namespace std;
 6 double h=0.1;//步差
 7 double xi[11]={0};
 8 double ol_yi[11]={1};
 9 double gol_yi[11]={1};
10 double rk_yi[11]={1};
11 double real_yi[11]={1};
12 double f(double x,double y){
13     return 2*x/(3*y*y);
14 }//f(x,y)
15 void OLFunction(){
16     for(int i=0;i<10;i++){
17         ol_yi[i+1]=ol_yi[i]+h*f(xi[i],ol_yi[i]);
18     }
19 }//欧拉方法
20 void GOLFunction(){
21     for(int i=0;i<10;i++){
22         gol_yi[i+1]=gol_yi[i]+
23             h*(
24                 f(xi[i],gol_yi[i])
25                 +f(xi[i+1],gol_yi[i]+h*f(xi[i],gol_yi[i]))
26             )/2;
27     }
28 }//改进欧拉方法
29 void RKFunction(){
30     double K1,K2,K3,K4;
31     for(int i=0;i<10;i++){
32         K1=f(xi[i],rk_yi[i]);
33         K2=f(xi[i]+h/2,rk_yi[i]+h*K1/2);
34         K3=f(xi[i]+h/2,rk_yi[i]+h*K2/2);
35         K4=f(xi[i]+h,rk_yi[i]+h*K3);
36         rk_yi[i+1]=rk_yi[i]+h*(K1+2*K2+2*K3+K4)/6;
37     }
38 }//经典龙格贝法
39 void RFunction(){
40     for(int i=1;i<11;i++){
41         real_yi[i]=pow(1.0+xi[i]*xi[i],1/3.0);
42     }
43 }//真实解
44 int main(){
45     int i;
46     for(i=1;i<11;i++){
47         xi[i]=xi[i-1]+h;
48     }//求xi[]
49     
50     OLFunction();//四种计算方法
51     GOLFunction();
52     RKFunction();
53     RFunction();
54 
55     printf("-------------------------------------------------\n");
56     printf("xi  | 欧拉     | 改进欧拉 | 经典R-K  | 准确解 \n");
57     printf("-------------------------------------------------\n");
58     for(i=0;i<11;i++){
59         printf("%.1lf | %.6lf | %.6lf | %.6lf | %.8lf\n",
60             xi[i],ol_yi[i],gol_yi[i],rk_yi[i],real_yi[i]);
61     }
62     getchar();
63     return 0;
64 }
复制代码


本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/3771104.html,如需转载请自行联系原作者

http://lihuaxi.xjx100.cn/news/239169.html

相关文章

linux 端口 流量统计,Linux下如何对端口流量进行统计

在不修改源代码的情况下对程序暴露端口流量进行监控统计&#xff0c;可以利用Linux中自带的Iptable添加简单的规则让其起到端口流量统计的作用。但是需要注意的是在服务器重启、Iptable服务重启的时候统计数据会被重置清零。添加需要统计的端口1、输入监控下面示例是监控目标端…

HTML添加上传图片并进行预览

使用说明&#xff1a;新建文件&#xff0c;直接复制粘贴&#xff0c;保存文件为html 格式&#xff0c;在浏览器运行即可&#xff1b; 第一种&#xff1a; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loos…

在Google Cloud Platform上持续部署Node.js

by Gautam Arora由Gautam Arora 在Google Cloud Platform上持续部署Node.js (Continuous Deployment for Node.js on the Google Cloud Platform) Google Cloud Platform (GCP) provides a host of options for Node developers to easily deploy our apps. Want a managed ho…

linux基础学习(二)

------------------------------------------------------------------------------------------------------------------------------------------------0.真机远程管理虚拟机telnet 明文传输 tcp 23ssh 加密传输 tcp 22ssh -X root172.25.0.11 //真机远程管理 ser…

linux系统下怎么使用lspci,Linux系统之lspci命令介绍

lspci&#xff0c;顾名思义&#xff0c;就是显示所有的pci设备信息。pci是一种总线&#xff0c;而通过pci总线连接的设备就是pci设备了。如今&#xff0c;我们常用的设备很多都是采用pci总线了&#xff0c;如&#xff1a;网卡、存储等。下面就简单介绍下该命令。lspci&#xff…

这是如何更好地利用JavaScript数组的方法

by pacdiv由pacdiv 这是如何更好地利用JavaScript数组的方法 (Here’s how you can make better use of JavaScript arrays) Quick read, I promise. Over the last few months, I noticed that the exact same four mistakes kept coming back through the pull requests I c…

关于javascript代码优化的8点建议

前面的话 本文将详细介绍JS编程风格的几个要点 松耦合 当修改一个组件而不需要更改其他组件时&#xff0c;就做到了松耦合 1、将JS从CSS中抽离&#xff1a;不要使用CSS表达式 //不好的做法 .box{width: expression(document.body.offsetWidth ’px)} 2、将CSS从JS中抽离&#…

CentOS7启动图形界面

1.yum groupinstall "GNOME Desktop" -y 2.systemctl get-default 3.systemctl set-default graphical.target 4.systemctl get-default 5.reboot