数值分析,C语言实现用改进的欧拉方法求解题微分方程,其中步长取为0.1.急求,在线等.
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/29 17:40:05
数值分析,C语言实现用改进的欧拉方法求解题微分方程,其中步长取为0.1.急求,在线等.
用改进的欧拉方法求解40题微分方程,其中步长取为0.1.
何为改进的欧拉方法?是Euler-Richardson算法吗?#include <stdio.h>
#include <conio.h>
#include <math.h>
double WeiFen(double x, double y){
return y*y*(cos(x)-sin(x))-y;
}
void EulerRichardson(double &x, double &y, double dx){
//欧拉理查德算法进行迭代
double dy_dx,ymid,xmid,dx_2;
dx_2=dx/2;
dy_dx=WeiFen(x,y);//得到起点的变化率
ymid=y+dy_dx*dx_2;
xmid=x+dx_2;
dy_dx=WeiFen(xmid,ymid);//得到中间点的变化率
y+=dy_dx*dx;
x+=dx;
}
int main(){
double x=0,y=1,xm=1.0,dx=0.1;
printf("x\ty\n%lg\t%lg\n",x,y);
while(x<xm){
EulerRichardson(x,y,dx);
printf("%lg\t%lg\n",x,y);
}
printf("\nFinished!\n");
getch();
return 0;
}看看这是不是就你想要的?
再问: euler是欧拉,我问的是改进的欧拉
再答: 我所写的就是改进的欧拉算法呀!即欧拉理查德森算法
再答: 我所写的就是改进的欧拉算法呀!即欧拉理查德森算法
#include <conio.h>
#include <math.h>
double WeiFen(double x, double y){
return y*y*(cos(x)-sin(x))-y;
}
void EulerRichardson(double &x, double &y, double dx){
//欧拉理查德算法进行迭代
double dy_dx,ymid,xmid,dx_2;
dx_2=dx/2;
dy_dx=WeiFen(x,y);//得到起点的变化率
ymid=y+dy_dx*dx_2;
xmid=x+dx_2;
dy_dx=WeiFen(xmid,ymid);//得到中间点的变化率
y+=dy_dx*dx;
x+=dx;
}
int main(){
double x=0,y=1,xm=1.0,dx=0.1;
printf("x\ty\n%lg\t%lg\n",x,y);
while(x<xm){
EulerRichardson(x,y,dx);
printf("%lg\t%lg\n",x,y);
}
printf("\nFinished!\n");
getch();
return 0;
}看看这是不是就你想要的?
再问: euler是欧拉,我问的是改进的欧拉
再答: 我所写的就是改进的欧拉算法呀!即欧拉理查德森算法
再答: 我所写的就是改进的欧拉算法呀!即欧拉理查德森算法
数值分析,C语言实现用改进的欧拉方法求解题微分方程,其中步长取为0.1.急求,在线等.
求教我的程序哪里出错了 变步长梯形法求数值积分用c语言实现 f(x)=sin(x)/x 0到1的积分 急待
matlab编程问题利用欧拉方法求常微分方程近似数值解
定积分C语言用下列三种方法实现进行积分数值计算 1.矩形法 2.变步长梯形法 3.龙贝格法
求物理大神解题!在线等!急
在线等,急!一道c语言题目编写, 求指点!
急求幽默风趣的语言.在线等
求一个数值转换的C语言程序,能够实现整数和小数部分的转换.
以代沟为话题的作文题目怎么取~~急求!在线等!
急求解题方法
求数学学霸解题,在线等,急
求常微分方程通解,在线等