c语言 用欧拉方法与改进的欧拉方法求初值问题

用欧拉方法与改进的欧拉方法求初值问题dy/dx=(2x)/(3y^2)(dx比dy等于2x除以3倍的y的平方)y(0)=1在区间[0,1]上取步长h=0.1的数值解。要求... 用欧拉方法与改进的欧拉方法求初值问题dy/dx=(2x)/(3y^2)(dx比dy等于2x除以3倍的y的平方) y(0)=1
在区间[0,1]上取步长h=0.1的数值解。要求:显示各x值下(0、0.1、0.2… 0.9、1)两种方法计算的y值。
十万火急 求救啊!!!!!!!!!
展开
 我来答
wacs5
2009-01-06 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2763万
展开全部
/*******************************************************
*Author :Wacs5
*Date :20090106(YYYY-MM-DD)
*Function :欧拉方法与改进的欧拉方法求常微分方程
*Describe
*用欧拉方法与改进的欧拉方法求初值问题dy/dx=(2x)/(3y^2)
* y(0)=1 ,在区间[0,1]上取步长h=0.1的数值解。
*要求:显示各x值下(0、0.1、0.2… 0.9、1)两种方法计算的y值。
*********************************************************/
#include <stdio.h>
#include <conio.h>
#include <math.h>

double f(double x,double y)
{
return 2*x/3/y/y;
}

int main()
{
int i;
double x,y,y0=1,dx=0.1;
double xx[11];
double euler[11],euler_2[11];
double temp;
double f(double x,double y);

for (i=0;i<11;i++)
xx[i]=i*dx;

euler[0]=y0;
for (i=1,x=0;i<11;i++,x+=dx)
euler[i]=euler[i-1]+dx*f(x,euler[i-1]);

euler_2[0]=y0;
for (i=1,x=0;i<11;i++,x+=dx)
{
temp=euler_2[i-1]+dx*f(x,euler_2[i-1]);
euler_2[i]=euler_2[i-1]+dx*(f(x,euler_2[i-1])+f(x+dx,temp))/2;
}

for (i=0,x=0;i<11;i++,x+=dx)
printf("x=%lf\teluer=%lf\teuler_2=%lf\taccu=%lf\n",x,euler[i],euler_2[i],pow(1+x*x,1.0/3));
getch();
}

最后一列是理论的解析解的值.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
厦门鲎试剂生物科技股份有限公司
2023-08-01 广告
BG试验又称为G试验,是一种基于真菌细胞壁成分的血清学试验。BG试验检测的是真菌细胞壁中的葡聚糖成分。操作步骤如下:1. 左键单击【View】2. 左键单击【Residual Diagnostics】3. 左键单击【Series Corre... 点击进入详情页
本回答由厦门鲎试剂生物科技股份有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式