四阶龙格库塔法C语言(西安交大)

#include

#include

double fxy(double xi,double yi) /*定义函数fxy*/

{

double y;

y=yi-2*xi/yi;

return(y);

}

void main()

{

double x0,y0,h,xi,yi,yi_1,xk2,yk2,xk3,yk3,xk4,yk4,k1,k2,k3,k4;

int i;

x0=0; /*赋初始值*/ y0=1;

h=0.1;

xi=x0;

yi=y0;

for(i=1;i

{

k1=h*fxy(xi,yi); /*求解k1值*/

xk2=xi+0.5*h; /*求解k2的值*/ yk2=yi+0.5*k1;

k2=h*fxy(xk2,yk2);

xk3=xi+0.5*h; /*求解k3的值*/ yk3=yi+0.5*k2; k3=h*fxy(xk3,yk3); xk4=xi+h; /*求解k4的值*/ yk4=yi+k3; k4=h*fxy(xk4,yk4);

yi_1=yi+(k1+2*k2+2*k3+k4)/6; /*求解yi+1的值*/ yi=yi_1;

if(i==1)

{

printf("输出函数yi 的近似值:\n"); /*输出所有的yi 值*/ printf("y0 = %.10f ",y0);

}

printf("y%d = %.10f ",i,yi);

if((i+1)%3==0) /*每行显示三个数值*/ printf("\n");

}

printf("\n");

}

#include

#include

double fxy(double xi,double yi) /*定义函数fxy*/

{

double y;

y=yi-2*xi/yi;

return(y);

}

void main()

{

double x0,y0,h,xi,yi,yi_1,xk2,yk2,xk3,yk3,xk4,yk4,k1,k2,k3,k4;

int i;

x0=0; /*赋初始值*/ y0=1;

h=0.1;

xi=x0;

yi=y0;

for(i=1;i

{

k1=h*fxy(xi,yi); /*求解k1值*/

xk2=xi+0.5*h; /*求解k2的值*/ yk2=yi+0.5*k1;

k2=h*fxy(xk2,yk2);

xk3=xi+0.5*h; /*求解k3的值*/ yk3=yi+0.5*k2; k3=h*fxy(xk3,yk3); xk4=xi+h; /*求解k4的值*/ yk4=yi+k3; k4=h*fxy(xk4,yk4);

yi_1=yi+(k1+2*k2+2*k3+k4)/6; /*求解yi+1的值*/ yi=yi_1;

if(i==1)

{

printf("输出函数yi 的近似值:\n"); /*输出所有的yi 值*/ printf("y0 = %.10f ",y0);

}

printf("y%d = %.10f ",i,yi);

if((i+1)%3==0) /*每行显示三个数值*/ printf("\n");

}

printf("\n");

}


    相关文章

    学业论文-龙格库塔法求解微分方程组

    龙格-库塔求解微分方程组 数学111班:何荣航 指导老师:于鹏 (陕西科技大学理学院 陕西 西安 710021) 摘 要:在工程实践当中,经常会遇到求解微分方程组的问题,一般情形下,求微分方程组的精确解是困难的,为了解决此问题需要求微分方程 ...

    利用龙格库塔法求解质点运动方程

    利用龙格-库塔法求解质点运动常微分方程 一.待解问题 讨论常微分方程的初值问题,边值问题的数值解法,最常用的基本方法就是龙格-库塔法使一些物理方程的计算简便,所得结果的精确提高. 下面是利用龙格-库塔法求解一个质点运动的常微分方程 以初速v ...

    机电一体化英语论文

    动态模拟直流机电系统创新的数字方法 Chen Chaoyinga,*,P. Di Barbab, A Savinib 电机工程系, 天津大学, 天津300072, 中华人民共和国电气工程系, 帕维亚大学,27100年, 意大利帕维亚摘要 在 ...

    非线性方程求根

    第7章 非线性方程求根 本章主要内容: 1.区间二分法. 2切线法. 3.弦位法. 4.一般迭代法. 重点.难点 一.区间二分法 区间二分法是求方程f(x)=0根的近似值的常用方法. 基本思想:利用有根区间的判别方法确定方程根的区间[a,b ...

    四阶龙格-库塔(R-K)方法求常微分方程

    中南大学 MATLAB 程序设计实践 材料科学与工程学院 2013年3月26日 一.编程实现"四阶龙格-库塔(R-K )方法求常微分方程",并举一 例应用之. [实例]采用龙格-库塔法求微分方程: ⎧y ' =-y +1 ...

    浅谈数值分析在机械工程领域的应用

    浅谈数值分析在机械工程领域的应用 摘要: MATLAB是目前国际上最流行的科学与工程计算的软件工具, 它具有强大的数值分析.矩阵运算.信号处理.图形显示.模拟仿真和最优化设计等功能.本文浅谈MATLAB在机械设计优化问题的几点应用. 关键词 ...

    数值分析经典例题

    数值分析经典例题 1. y' = y , x [0,1] ,y (0) =1 , h = 0.1. 1求解析解. 2 Eular法 3 R-K法 1解析法 ○ 在MATLAB 命令窗口执行 clear >> x=0:0.1:1; ...

    matlab求解非线性方程组及极值

    matlab求解非线性方程组及极值 默认分类 2010-05-18 15:46:13 阅读1012 评论2 字号:大中小 订阅 一.概述: 求函数零点和极值点: Matlab中三种表示函数的方法: 1. 定义一个m函数文件, 2.使用函数句 ...

    2014云南省昭通市事业单位招聘考试计算机模拟精选试题

    1 计算机能进行(),并根据判断结果决定下一步该执行的命令 A:快速计算 B:自动计算 C:逻辑判断 D:二进制计算 2 C语言是一种() A:高级语言 B:汇编语言 C:中级语言 D:机器语言 3 ()是计算机的系统软件 A:DOS和Wi ...