分别用改进的欧拉法和四阶龙格-库塔公式求解微分方程初值问题 20
分别用改进的欧拉法和四阶龙格-库塔公式求解微分方程初值问题(1)Y'=Y-2X/Y,Y(0)=1,X=[0,1],H=0.1(2)Y'=X2+Y2.Y(0)=0,X=[0...
分别用改进的欧拉法和四阶龙格-库塔公式求解微分方程初值问题
(1) Y'=Y-2X/Y,Y(0)=1, X=[0,1],H=0.1
(2) Y'=X2+Y2.Y(0)=0, X=[0,1] H=0.1 注释;X2为X的平方,Y2为Y的平方,先求解,
然后用C语音编程的帮我编程一下 展开
(1) Y'=Y-2X/Y,Y(0)=1, X=[0,1],H=0.1
(2) Y'=X2+Y2.Y(0)=0, X=[0,1] H=0.1 注释;X2为X的平方,Y2为Y的平方,先求解,
然后用C语音编程的帮我编程一下 展开
展开全部
求解就自己算吧,程序如下,其中RK4与改进欧拉法分别写成一个模块,方便阅读:
#include <stdio.h>
#include <stdlib.h>
double f1(double x,double y) {//定义方程1
return (y-2*x/y);
}
double f2(double x,double y) {//定义方程2
return (x*x+y*y);
}
double RK4(double xn,double yn) {
double h=0.1,k1=0,k2=0,k3=0,k4=0,d=1,h2=h/2;//RK4解方程2
printf(" x2 y2\n");
printf("%3.1lf%10.6lf\n",xn,yn);
while(xn<=d) {
k1=f2(xn,yn);
xn+=h2;
k2=f2(xn,yn+h2*k1);
k3=f2(xn,yn+h2*k2);
xn+=h2;
k4=f2(xn,yn+h*k3);
yn+=h/6*(k1+2*k2+2*k3+k4);
printf("%3.1lf%10.6lf\n",xn,yn);
}
return 1;
}
double ELR(double xn,double yn){
double h=0.1,yp,yc,d=1;//改进欧拉法解方程1
printf(" x1 y1\n");
printf("%3.1lf%10.6lf\n",xn,yn);
while(xn<=d) {
yp=yn+h*f1(xn,yn);
xn+=h;
yc=yn+h*f1(xn,yp);
yn=(yc+yp)/2.0;
printf("%3.1lf%10.6lf\n",xn,yn);
}
return 1;
}
void main() {
ELR(0.0,1.0);
RK4(0.0,0.0);
system("pause");
}
我没写什么注释,算法就参考一下书本好了,有什么不懂的请追问。
#include <stdio.h>
#include <stdlib.h>
double f1(double x,double y) {//定义方程1
return (y-2*x/y);
}
double f2(double x,double y) {//定义方程2
return (x*x+y*y);
}
double RK4(double xn,double yn) {
double h=0.1,k1=0,k2=0,k3=0,k4=0,d=1,h2=h/2;//RK4解方程2
printf(" x2 y2\n");
printf("%3.1lf%10.6lf\n",xn,yn);
while(xn<=d) {
k1=f2(xn,yn);
xn+=h2;
k2=f2(xn,yn+h2*k1);
k3=f2(xn,yn+h2*k2);
xn+=h2;
k4=f2(xn,yn+h*k3);
yn+=h/6*(k1+2*k2+2*k3+k4);
printf("%3.1lf%10.6lf\n",xn,yn);
}
return 1;
}
double ELR(double xn,double yn){
double h=0.1,yp,yc,d=1;//改进欧拉法解方程1
printf(" x1 y1\n");
printf("%3.1lf%10.6lf\n",xn,yn);
while(xn<=d) {
yp=yn+h*f1(xn,yn);
xn+=h;
yc=yn+h*f1(xn,yp);
yn=(yc+yp)/2.0;
printf("%3.1lf%10.6lf\n",xn,yn);
}
return 1;
}
void main() {
ELR(0.0,1.0);
RK4(0.0,0.0);
system("pause");
}
我没写什么注释,算法就参考一下书本好了,有什么不懂的请追问。
江苏华简晟01
2024-10-21 广告
2024-10-21 广告
色谱检测服务热线18721007633, 江苏华简晟检测科技是研究性测试服务机构,基于多年的分析表征专业技术积累和辐射全国的服务网络,每年出具数万分技术报告,累计服务客户数千万家。...
点击进入详情页
本回答由江苏华简晟01提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询