欧拉法求解微分方程组
欧拉法求解微分方程组,编程软件是VS2013,编程语言是C语言
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-11 11:09 EulerEuler
目录 0 2018-06-11 11:08 EulerEulerDebug
文件 33280 2018-05-16 11:53 EulerEulerDebugEuler.exe
文件 244784 2018-05-16 11:53 EulerEulerDebugEuler.ilk
文件 593920 2018-05-16 11:53 EulerEulerDebugEuler.pdb
文件 3473408 2018-05-16 12:07 EulerEulerEuler.sdf
文件 961 2018-05-15 15:04 EulerEulerEuler.sln
文件 24064 2018-05-16 12:07 EulerEulerEuler.v12.suo
目录 0 2018-06-11 11:09 EulerEulerEuler
目录 0 2018-06-11 11:09 EulerEulerEulerDebug
文件 1765 2018-05-16 11:53 EulerEulerEulerDebugEuler.log
文件 12784 2018-05-16 11:53 EulerEulerEulerDebugEuler.obj
目录 0 2018-06-11 11:09 EulerEulerEulerDebugEuler.tlog
文件 2586 2018-05-16 11:53 EulerEulerEulerDebugEuler.tlogcl.command.1.tlog
文件 1900 2018-05-16 11:53 EulerEulerEulerDebugEuler.tlogCL.read.1.tlog
文件 1548 2018-05-16 11:53 EulerEulerEulerDebugEuler.tlogCL.write.1.tlog
文件 188 2018-05-16 11:53 EulerEulerEulerDebugEuler.tlogEuler.lastbuildstate
文件 2626 2018-05-16 11:53 EulerEulerEulerDebugEuler.tloglink.command.1.tlog
文件 2524 2018-05-16 11:53 EulerEulerEulerDebugEuler.tloglink.read.1.tlog
文件 628 2018-05-16 11:53 EulerEulerEulerDebugEuler.tloglink.write.1.tlog
文件 3459 2018-05-16 11:30 EulerEulerEulerDebugstdafx.obj
文件 109568 2018-05-16 11:53 EulerEulerEulerDebugvc120.idb
文件 86016 2018-05-16 11:53 EulerEulerEulerDebugvc120.pdb
文件 2692 2018-05-16 11:53 EulerEulerEulerEuler.cpp
文件 4233 2018-05-15 15:04 EulerEulerEulerEuler.vcxproj
文件 1312 2018-05-15 15:04 EulerEulerEulerEuler.vcxproj.filters
文件 410 2018-05-16 12:04 EulerEulerEulerEuler_data.txt
文件 1496 2018-05-15 15:04 EulerEulerEulerReadMe.txt
文件 211 2018-05-15 15:04 EulerEulerEulerstdafx.cpp
文件 234 2018-05-15 15:04 EulerEulerEulerstdafx.h
文件 236 2018-05-15 15:04 EulerEulerEuler argetver.h
............此处省略0个文件信息
#include “stdio.h“
#include “stdlib.h“
#include
int Func(double y[] double d[])
{
d[0] = - y[1] - y[2] ; /*y0‘=y1*/
d[1] = y[0] + 0.2 * y[1]; /*y1‘=y0*/
d[2] = 0.2 + (y[1] - 5.7) * y[2]; /*y2‘=y2*/
return(1);
}
void Euler1(double t double y[] int n double h int k double z[3][11])
/*int n; /*整型变量,微分方程组中方程的个数,也是未知函数的个数
int k; /*整型变量。积分步数(包括起始点这一步)
double t; /*双精度实型变量对微分方程进行积分的起始点t0
double h; /*双精度实型变量。积分步长
double y[]; /*双精度实型一维数组,长度为n。存放n个未知函数yi在起始点t0处的函数值
double z[]; /*双精度实型二维数组,体积为nxk。返回k个积分点(包括起始点)上的未知函数值
*/
{
int i j;
double *d;
d = (double *)malloc(n*sizeof(double));
if (d == NULL)
{
printf(“内存分配失败
“);
exit(1);
}
/*将方程组的初值赋给数组z[i*k]*/
for (i = 0; i <= n - 1; i++)
z[i][0] = y[i];
for (j = 1; j <= k - 1; j++)
{
Func(y d); /*求出f(x)*/
for (i = 0; i <= n - 1; i++)
y[i] = z[i][j - 1] + h*d[i];
Func(y d);
for (i = 0; i <= n - 1; i++)
d[i] = z[i][j - 1] + h*d[i];
for (i = 0; i <= n - 1; i++)
{
y[i] = (y[i] + d[i]) / 2.0;
z[i][j] = y[i];
}
}
free(d);
return;
}
int Savedata(double xx[11] double Ynnn[3][11])
{
FILE *fp;//文件指针
int i j;
/*文件的打开*/
fp = fopen(“Euler_data.txt“ “w“);//fopen打开文件,这个文件可以是当前不存在的。“w”以写入的形式打开,“r”以读的形式打开
if (fp == NULL) //判断如果文件指针为空
{
printf(“File cannot open! “);
exit(0);//在以0的形式退出,必须在文件开头有#include stdlib 头文件即standard library标准库头文件
}
//写入东西
for (j = 0; j <= 9; j++)
fprintf(fp “%f “ xx[j]);//写入指针fp,写入的东西就是刚才的用户输入的d注意这里的fp和d没有引号
fprintf(fp “%f
“ xx[10]);
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 9; j++)
fprintf(fp “%f “ Ynnn[i][j]);//写入指针fp,写入的东西就是刚才的用户输入的d注意这里的fp和d没有引号
fprintf(fp “%f
“ Ynnn[i][10]);
}
//关闭文件
fclose(fp);
return 0;
}
int main()
{
int i j;
double y[3] z[3][11] t h x[11];
y[0] = 0; /*初值y0(0)=0*/
y[1] = 2; /*初值y1(0)=2*/
y[2] = 2; /*初值y2(0)=2*/
t = 0.0; /*起始点t=0*/
h = 0.1; /*步长为0.01*/
Euler1(t y 3 h 11 z);
printf(“定步长欧拉法结果:
“);
for (i = 0; i <= 10; i++)
{
x[i] = i*h;
printf(“t=%f “ x[i]);
for (j = 0; j <= 2; j++)
printf(“y(%d)=%f “ j z[j][i]);
printf(“
“);
}
Savedata(x z);
getchar();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-11 11:09 EulerEuler
目录 0 2018-06-11 11:08 EulerEulerDebug
文件 33280 2018-05-16 11:53 EulerEulerDebugEuler.exe
文件 244784 2018-05-16 11:53 EulerEulerDebugEuler.ilk
文件 593920 2018-05-16 11:53 EulerEulerDebugEuler.pdb
文件 3473408 2018-05-16 12:07 EulerEulerEuler.sdf
文件 961 2018-05-15 15:04 EulerEulerEuler.sln
文件 24064 2018-05-16 12:07 EulerEulerEuler.v12.suo
目录 0 2018-06-11 11:09 EulerEulerEuler
目录 0 2018-06-11 11:09 EulerEulerEulerDebug
文件 1765 2018-05-16 11:53 EulerEulerEulerDebugEuler.log
文件 12784 2018-05-16 11:53 EulerEulerEulerDebugEuler.obj
目录 0 2018-06-11 11:09 EulerEulerEulerDebugEuler.tlog
文件 2586 2018-05-16 11:53 EulerEulerEulerDebugEuler.tlogcl.command.1.tlog
文件 1900 2018-05-16 11:53 EulerEulerEulerDebugEuler.tlogCL.read.1.tlog
文件 1548 2018-05-16 11:53 EulerEulerEulerDebugEuler.tlogCL.write.1.tlog
文件 188 2018-05-16 11:53 EulerEulerEulerDebugEuler.tlogEuler.lastbuildstate
文件 2626 2018-05-16 11:53 EulerEulerEulerDebugEuler.tlogli
文件 2524 2018-05-16 11:53 EulerEulerEulerDebugEuler.tlogli
文件 628 2018-05-16 11:53 EulerEulerEulerDebugEuler.tlogli
文件 3459 2018-05-16 11:30 EulerEulerEulerDebugstdafx.obj
文件 109568 2018-05-16 11:53 EulerEulerEulerDebugvc120.idb
文件 86016 2018-05-16 11:53 EulerEulerEulerDebugvc120.pdb
文件 2692 2018-05-16 11:53 EulerEulerEulerEuler.cpp
文件 4233 2018-05-15 15:04 EulerEulerEulerEuler.vcxproj
文件 1312 2018-05-15 15:04 EulerEulerEulerEuler.vcxproj.filters
文件 410 2018-05-16 12:04 EulerEulerEulerEuler_data.txt
文件 1496 2018-05-15 15:04 EulerEulerEulerReadMe.txt
文件 211 2018-05-15 15:04 EulerEulerEulerstdafx.cpp
文件 234 2018-05-15 15:04 EulerEulerEulerstdafx.h
文件 236 2018-05-15 15:04 EulerEulerEuler argetver.h
............此处省略0个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)