改进欧拉(c语言程序)

改进欧拉(c语言程序)
改进欧拉(c语言程序)

1)改进欧拉法求解常微分方程的初值问题

#include

float func(float x,float y)

{ return(y-x);

}

float euler(float x0,float xn,float y0,int N)

{ float x,y,yp,yc,h;

int i;

x=x0;

y=y0;

h=(xn-x0)/(float)N;

for(i=1;i<=N;i++)

{ yp=y+h*func(x,y);

x=x0+i*h;

yc=y+h*func(x,yp);

y=(yp+yc)/2.0;

}

return(y);

}

main()

{ float x0,xn,y0,e;

int n;

printf("\ninput n:\n ");

scanf("%d",&n);

printf("input x0,xn:\n ");

scanf("%f,%f",&x0,&xn);

printf("input y0:\n ");

scanf("%f",&y0);

e=euler(x0,xn,y0,n);

printf("y(%f)=%6.4f",y0,e);

}

input n:

20

input x0,xn:

1,6

input y0:

2

y(2.000000)=7.0000Press any key to continue

(2)四阶龙格—库塔法

#include

float func(float x,float y)

{ return(x-y);

}

float runge_kutta(float x0,float xn,float y0,int N) { float x,y,y1,y2,h,xh;

float d1,d2,d3,d4;

int i;

x=x0;

y=y0;

h=(xn-x0)/(float)N;

for(i=1;i<=N;i++)

{ xh=x+h/2;

d1=func(x,y);

d2=func(xh,y+h*d1/2.0);

d3=func(xh,y+h*d2/2.0);

d4=func(xh,y+h*d3);

y=y+h*(d1+2*d2+2*d3+d4)/6.0;

x=x0+i*h; }

return(y);

}

main()

{ float x0,xn,y0,e;

int N;

printf("\ninput n:\n ");

scanf("%d",&N);

printf("input x0,xn:\n ");

scanf("%f,%f",&x0,&xn);

printf("input y0:\n ");

scanf("%f",&y0);

e=runge_kutta(x0,xn,y0,N);

printf("y(%f)=%8.6f",y0,e);

}

input n:

10

input x0,xn:

1,2

input y0:

5

y(5.000000)=2.833863Press any key to continue

Euler方法与改进的Euler方法的应用

CENTRAL SOUTH UNIVERSITY 数值分析实验报告

Euler 方法与改进的Euler 方法的应用 一、问题背景 在工程和科学技术的实际问题中,常需求解微分方程,但常微分方程中往往 只有少数较简单和典型的常微分方程(例如线性常系数常微分方程等)可求出其 解析解,对于变系数常微分方程的解析求解就比较困难,而一般的非线性常微分方 程的求解困难就更不用说了。大多数情况下,常微分方程只能用近似方法求解。 这种近似解法可分为两大类:一类是近似解析法,如级数解法、逐次逼近法等;另 一类是数值解法,它给出方程在一些离散点上的近似值。 二、数学模型 在具体求解微分方程时,需具备某种定解条件,微分方程和定解条件合在一 起组成定解问题。定解条件有两种:一种是给出积分曲线在初始点的状态,称为 初始条件,相应的定解问题称为初值问题。另一类是给出积分曲线首尾两端的状 态,称为边界条件,相应的定解问题称为边值问题。在本文中主要讨论的是给定 初值条件的简单Euler 方法和改进的Euler 方法来求解常微分方程。 三、算法及流程 Euler 方法是最简单的一种显式单步法。对于方程 ()y x f dx dy ,= 考虑用差商代替导数进行计算,取离散化点列 nh x x n +=0,L n ,2,1,0= 则得到方程的近似式 ()()()()n n n n x y x f h x y x y ,1≈-+ 即 ()n n n n y x hf y y ,1+=+ 得到简单Euler 方法。具体计算时由0x 出发,根据初值,逐步递推二得到系列离 散数值。 简单Euler 方法计算量小,然而精度却不高,因而我们可以构造梯形公式 ()()[]η=++ =+++0111,,2 y y t f y t f h y y n n n n n n 其中()N a b h -=。这是一个二阶方法,比Euler 方法精度高。但是上述公式右边 有1+n y ,因而是隐式差分方程,可以用迭代方法计算1+n y 。初值可以由Euler 公式

多面体欧拉公式的发现(二)共9页

●教学时间 第十课时 ●课题 §9.9.2 研究性课题:多面体欧拉公式的发现(二) ●教学目标 (一)教学知识点 1.欧拉公式的证明. 2.欧拉公式的应用. (二)能力训练要求 1.使学生能理解多面体欧拉公式的证明过程并能叙述其证明思路. 2.使学生掌握多面体欧拉公式并灵活地将其应用于解题中. (三)德育渗透目标 继续培养学生寻求规律、发现规律、认识规律、并利用规律解决问题的能力. ●教学重点 欧拉公式的应用. ●教学难点 欧拉公式的证明思路. ●教学方法 学导式 本节课继续上节课对欧拉公式的研究活动,遵循寻求规律——发现规律——认识规律——应用规律的学习过程,对上节课已猜想出的欧拉公式

进一步深入研究,探索它的证明思路,让学生了解这种证明思想,进而达到熟练掌握欧拉公式的目标,以便于学生得心应手地将欧拉公式应用到各种问题的解决中. ●教具准备 投影片三张 问题5(1)(2)(记作§9.9.2 A) 第一张:课本P 59 第二张:本课时教案例1(记作§9.9.2 B) 第三张:本课时教案例2(记作§9.9.2 C) ●教学过程 Ⅰ.课题导入 [师]上节课我们已经猜想出了欧拉公式并且同学们也已自学了它的证明过程,这节课我们继续对它的证明方法及其重要应用进行学习和探讨. Ⅱ.讲授新课 的欧拉公式的证明进行了自学,那么,[师]上节课我们已对课本P 58 谁能说一下课本中的证明思路和关键是什么? [生]将立体图形转化为平面图形. [师]好,前面,我们经常使用把不在同一平面中的几何图形的问题转化为同一平面中图形的问题,所以此处如果能把求一个简单多面体的V、F、E三者之间的关系问题,转化为平面中的问题就会前进一大步了. 那么课本中是怎样实现转化的呢? [生]把多面体想成是用橡皮膜做成的,即课本P 图9—85的多面体, 58

Matlab实验报告五(微分方程求解Euler折线法)-推荐下载

数学与信息科学系实验报告 实验名称微分方程求解 所属课程数学软件与实验 实验类型综合型实验 专业信息与计算科学 班级 学号姓名指导教师 吊 顶 到 位 。 连 接 管 半 径 标 式 , 为备 , 查 所 有 试 卷 设 备 进 电 保 护 试 卷 ; 对 整 置 技 术 限 度 内 卷 破 避 免 错 中 资 料

一、实验概述 【实验目的】 熟悉在Matlab 环境下求解常微分方程组和偏微分方程组的方法,掌握利用Matlab 软件进行常微分方程组和偏微分方程组的求解。 【实验原理】 1.dsolve(‘equ1’,’equ2’,...):matlab 求微分方程的解析解。 2.simplify(s):对表达式S 使用MAPLE 的化简规则进行化简。 3.[x,y]=dslove(‘方程1’,‘方程2’,...‘初始条件1’‘初始条件2’,..’自变量’):用字符串方程表示,自变量缺省值为t. 4.ezplot(x,y,[tmin,tmax]):符号函数的作图命令。【实验环境】 MatlabR2010b 二、实验内容 问题1. 求微分方程组在初始条件下的解,并 00dx x y dt dy x y dt ?++=????+-=??00|1,|0t t x y ====[0,0.5]t ∈画出函数的图像. ()y f x =1.分析问题 本题是根据初始条件求微分方程组的特解,并根据t 的范围画出函数的图形。 2.问题求解 syms x y t [x,y]=dsolve('Dx+x+y=0','Dy+x-y=0','x(0)=1','y(0)=0','t')x=simple(x)y=simple(y) ezplot(x,y,[0,0.5]);axis auto 3.结果 x = exp(2^(1/2)*t)/2 + 1/(2*exp(2^(1/2)*t)) - (2^(1/2)*exp(2^(1/2)*t))/4 + 2^(1/2)/(4*exp(2^(1/2)*t)) y = 2^(1/2)/(4*exp(2^(1/2)*t)) - (2^(1/2)*exp(2^(1/2)*t))/4 x = cosh(2^(1/2)*t) - (2^(1/2)*sinh(2^(1/2)*t))/2 、管路敷设技术通过管线不仅可以解决吊顶层配置不规范高中资料试卷问题,而且可保障各类管路习题到位。在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。、电气课件中调试对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行 高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。 、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。

欧拉法matlab程序

法 function [x,y]=naeuler(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 y(n+1)=y(n)+h*feval(dyfun,x(n),y(n)); end x=x';y=y'; x1=0::1;y1=(1+2*x1).^; plot(x,y,x1,y1) >> dyfun=inline('y-2*x/y'); [x,y]=naeuler(dyfun,[0,1],1,;[x,y] ans = 2.隐式Euler法 function [x,y]=naeulerb(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 y(n+1)=iter(dyfun,x(n+1),y(n),h); end x=x';y=y'; x1=0::1;y1=(1+2*x1).^; plot(x,y,x1,y1) function y=iter(dyfun,x,y,h) y0=y;e=1e-4;K=1e+4; y=y+h*feval(dyfun,x,y); y1=y+2*e;k=1; while abs(y-y1)>e y1=y; y=y0+h*feval(dyfun,x,y); k=k+1; if k>K error('迭代发散'); end end >> dyfun=inline('y-2*x/y');

[x,y]=naeulerb(dyfun,[0,1],1,;[x,y] ans = 3.改进Euler法 function [x,y]=naeuler2(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 k1=feval(dyfun,x(n),y(n)); y(n+1)=y(n)+h*k1; k2=feval(dyfun,x(n+1),y(n+1)); y(n+1)=y(n)+h*(k1+k2)/2; end x=x';y=y'; x1=0::1;y1=(1+2*x1).^; plot(x,y,x1,y1) >> dyfun=inline('y-2*x/y'); [x,y]=naeuler2(dyfun,[0,1],1,;[x,y] ans =

常微分方程作业欧拉法与改进欧拉法

P77 31.利用改进欧拉方法计算下列初值问题,并画出近似解的草图:dy + =t = t y y ≤ ≤ ,2 ;5.0 0,3 )0( )1(= ,1 ? dt 代码: %改进欧拉法 function Euler(t0,y0,inv,h) n=round(inv(2)-inv(1))/h; t(1)=t0; y(1)=y0; for i=1:n y1(i+1)=y(i)+h*fun(t(i),y(i)); t(i+1)=t(i)+h; y(i+1)=y(i)+1/2*h*(fun(t(i),y(i))+ fun(t(i+1),y1(i+1))) end plot(t,y,'*r') function y=fun(t,y); y=y+1; 调用:Euler(0,3,[0,2],0.5) 得到解析解:hold on; y=dsolve('Dy=y+1','(y(0)=3)','t'); ezplot(y,[0,2]) 图像:

dy y =t - t y ;2.0 t = ≤ )0( 0,5.0 ,4 )2(2= ≤ ? ,2 dt 代码: function Euler1(t0,y0,inv,h) n=round(inv(2)-inv(1))/h; t(1)=t0; y(1)=y0; for i=1:n y1(i+1)=y(i)+h*fun(t(i),y(i)); t(i+1)=t(i)+h; y(i+1)=y(i)+1/2*h*(fun(t(i),y(i))+ fun(t(i+1),y1(i+1))) end plot(t,y,'*r') function y=fun(t,y); y=y^2-4*t; 调用: Euler1(0,0.5,[0,2],0.2) 图像:

欧拉公式推导

欧拉公式推导: 图4.3所示的两端铰支杆件,受轴向压力N 作用而处于中性平衡微弯状态,杆件弯曲后截面中产生了弯矩M 和剪力V ,在轴线任意点上由弯矩产生的横向变形为1y ,由剪力产生的横向变形为2y ,总变形21y y y +=。 y 图4.3 两端铰支的轴心压杆临界状态 设杆件发生弯曲屈曲时截面的临界应力小于材料比例极限p f ,即p f ≤σ(对理想材料取y p f f =)。由材料力学可得: EI M dz y d -=2 12 由剪力V 产生的轴线转角为: dz dM GA V GA dz dy ?=?==ββγ2 式中 A 、I ——杆件截面面积、惯性矩; E 、G ——材料的弹性模量、剪切模量; β—— 与截面形状有关的系数。 因为 222 22dz M d GA dz y d ?=β 所以 2222122222d y d y d y M d M dz dz dz EI GA dz β=+=-+? 由 y N M ?=得: 2222dz y d GA N y EI N dz y d ?+?-=β

01=?+??? ??-''y EI N GA N y β 令 ??? ??-=GA N EI N k β12 得常系数线性二阶齐次方程 20y k y ''+= 其通解为:sin cos y A kz B kz =+ 由边界条件:;0,0==y z 0=B ,kz A y sin =。再由0,==y l z 得: 0sin =kl A 上式成立的条件是0=A 或0sin =kl ,其中0=A 表示杆件不出现任何变形,与杆件微弯的假设不符。由0sin =kl ,得πn kl =(=n 1,2,3…),取最小值=n 1,得π=kl ,即 2 221N k N l EI GA πβ==??- ??? 由此式解出N ,即为中性平衡的临界力cr N 12222222211Ι11γππβππ?+?=?+?=l ΕΙl ΕGA l ΕΙl ΕΙ N cr (4.6) 临界状态时杆件截面的平均应力称为临界应力cr σ 12 22211γλπλπσ?+?==ΕΑΕA N cr cr (4.7) 式中 1γ——单位剪力时杆件的轴线转角,)/(1GA βγ=; l ——两端铰支杆得长度; λ——杆件的长细比,i l /=λ; i ——杆件截面对应于屈曲轴的回转半径,A I i /=。 如果忽略杆件剪切变形的影响(此影响很小)则式(4.6)、(4.7)变为: 22cr E πσλ = (4.8)

欧拉及改进的欧拉法求解常微分方程

生物信息技术0801 徐聪U200812594 #include #include void f1(double *y,double *x,double *yy) { y[0]=2.0; x[0]=0.0; yy[0]=2.0; for(int i=1;i<=9;i++) { x[i]=x[i-1]+0.2; y[i]=y[i-1]+0.2*(y[i-1]-x[i-1]); yy[i]=x[i]+1+exp(x[i]); printf("若x=%f,计算值是%f,真实值是%f,截断误差是%f\n ",x[i],y[i],yy[i],y[i]-yy[i]); } }; void f2(double *y,double *x,double *yy) { y[0]=1.0; x[0]=0.0; yy[0]=1.0; for(int i=1;i<=9;i++) { x[i]=x[i-1]+0.2; y[i]=y[i-1]+0.2*(2*y[i-1]+x[i-1]*x[i-1]); yy[i]=-0.5*(x[i]*x[i]+x[i]+0.5)+1.25*exp(2*x[i]); printf("若x=%f,计算值是%f,真实值是%f,截断误差是%f\n ",x[i],y[i],yy[i],y[i]-yy[i]); } }; void f3(double *y,double *x,double *yy,double *y0) { y[0]=2.0; x[0]=0.0; yy[0]=2.0; for(int i=1;i<=9;i++) { x[i]=x[i-1]+0.2; y0[i]=y[i-1]+0.2*(y[i-1]-x[i-1]); y[i]=y[i-1]+0.1*(y[i-1]-x[i-1]+y0[i-1]-x[i-1]);

欧拉图fluery算法matlab

clear all A=zeros(16); for i=1:16 %A(i,i)=1/2; if i+1<=16 && mod(i,4)~=0 A(i,i+1)=1; end if i+4<=16 A(i,i+4)=1; end end A(2,5)=1; A(3,8)=1; A(9,14)=1; A(12,15)=1; % A(1,6)=1; % A(6,11)=1; % A(11,16)=1; % A(16,1)=1; A=A+A'; [T3 c3]=Fleuf2(A); pos3(1:2,1)=0; for i=1:16 if i==1, pos3(1:2,i)=0; else if mod(i-1,4)~=0 pos3(1,i)=pos3(1,i-1)+1; pos3(2,i)=pos3(2,i-1); else pos3(1,i)=pos3(1,i-4); pos3(2,i)=pos3(2,i-4)-1; end end end figure (1), title('3rd Question')

for j=i:16 if A(i,j)==1, plot([pos3(1,i),pos3(1,j)],[pos3(2,i),pos3(2,j)]); hold on, end end end for i=2:c3 draw_arrow(pos3(:,T3(1,i))',pos3(:,T3(2,i))',0.5) x = mean(pos3(1,T3(:,i))); y = mean(pos3(2,T3(:,i))) text(x,y,num2str(i),'FontSize',18); pause; end pause off; hold off function [T c]=Fleuf1(d) n = length(d); b = d; b(b == Inf)=0; b(b~=0) = 1; m = 0; a = sum(b); eds = sum(a)/2; ed = zeros(2,eds); vexs = zeros(1,eds+1); matr = b; for i=1:n if mod(a(i),2) ==1 m = m+1; end end if m~=0 fprintf('there is not exist Euler path.\n'); T=0;c=0; end if m==0

欧拉公式的证明(整理)Word版

欧拉公式的证明 著名的欧拉公式e^(iθ)=cosθ+isinθ是人们公认的优美公式。原因是指数函数和三角函数在实数域中几乎没有什么联系,而在复数域中却发现了他们可以相互转化,并被一个非常简单的关系式联系在一起。特别是当θ=π时,欧拉公式便写成了e^(iπ)+1=0,就这个等式将数中最富有特色的五个数0,1,i , e , π ,绝妙地联系在一起 方法一:用幂级数展开形式证明,但这只是形式证明(严格的说,在实函数域带着i只是形式上的) 再抄一遍:设z = x+iy 这样 e^z = e^(x+iy)=e^x*e^(iy),就是e^z/e^x = e^(iy) 用牛顿幂级数展开式 e^x = 1+x+x^2/2!+x^3/3!+.....+x^n/n!+...... 把 e^(iy) 展开,就得到 e^z/e^x = e^(iy) =1+iy-y^2/2!-iy^3/3!+y^4/4!+iy^5/5!-y^6/6!-..... =(1-y^2/2!+y^4/4!-y^6/6!+.....) +i(y-y^3/3!+y^5/5!-....) 由于 cosy = 1-y^2/2!+y^4/4!-y^6/6!+....., siny = y-y^3/3!+y^5/5!-.... 所以 e^(x+iy)=e^x*e^(iy)=e^x*(cosy+isiny) 即 e^(iy) = (cosy+isiny) 方法二:见复变函数第2章,在整个负数域内重新定义了sinz cosz而后根据关系推导出了欧拉公式。着个才是根基。由来缘于此。 方法一是不严格的。 再请看这2个积分 ∫sqrt(x^2-1)dx=x*sqrt(x^2-1)/2-ln(2*sqrt(x^2-1)+2x)/2 ∫sqrt(1-x^2)dx=arcsin(x)/2+x*sqrt(1-x^2)/2; 上式左边相当于下式左边乘以i 于是上式右边相当于下式右边乘以i 然后化简就得到欧拉公式 这个证明方法不太严密 但很有启发性 历史上先是有人用上述方法得到了对数函数和反三角函数的关系 然后被欧拉看到了,才得到了欧拉公式 设a t θ ?R,ρ?R+,a^(it)?z有: a^(it)=ρ(cosθ+isinθ) 1 因共轭解适合方程,用-i替换i有: a^(-it)=ρ(cosθ-isinθ) 2

欧拉公式的应用

欧拉公式的应用 绪论 本文首先介绍了一下欧拉公式以及推广的欧拉公式,对欧拉公式的特点作了简要的探讨.欧拉公式形式众多,在数学领域内的应用范围很广,本文对欧拉公式在三角函数中的应用作了详细的研究,欧拉公式在求三角级数中的应用中、在证明三角恒等式时、解三角方程的问题时、探求一些复杂的三角关系时,可以避免复杂的三角变换,利用较直观的代数运算使得问题得到解决.另一方面,利用欧拉公式大降幂,能够把高次幂的正余弦函数表示为一次幂函数的代数和,克服了高次幂函数在运算上的不方便. 关键词:欧拉公式三角函数降幂级数三角级数

目录 绪论......................................错误!未定义书签。目录......................................错误!未定义书签。 一、绪论 (1) 二、欧拉公式的证明、特点、作用 (1) 三、欧拉公式在三角函数中的应用 (4) (一) 倍角和半角的三角变换 (4) (二) 积化和差与差化积的三角变换 (4) (三) 求三角表达式的值 (5) (四) 证明三角恒等式 (6) (五) 解三角方程 (7) (六) 利用公式求三角级数的和 (7) (七) 探求一些复杂的三角关系式 (8) (八) 解决一些方程根的问题 (9) (九) 欧拉公式大降幂 (10) 结束语 (15)

一、绪论 欧拉公式形式众多,有多面体欧拉公式、欧拉求和公式、cos sin i e i θθθ=+、欧拉积分等多种形式、立体几何、工程方面等方面.由于欧拉公式有多种形式,在数学领域中的应用范围很广,本文只介绍欧拉公式的一种形式“cos sin i e i θθθ=+”以及这种形式在数学中的应用. 二 、欧拉公式的证明、特点、作用 1748年,欧拉在其著作中陈述出公式cos sin i e i θθθ=+,欧拉公式在数学的许多定理的证明和计算中,有着广泛的应用.它将定义和形式完全不同的指数函数和三角函数联系起来,为我们研究这两种函数的有关运算及其性质架起了一座桥梁.同时我们知道三角函数的恒等变换是中学数学中的一个重要内容,也是一个难点,但由于三角恒等变换所用公式众多,这便给解决三角变换问题带来了诸多不便.下面将通过欧拉公式,将三角函数化为复指数函数,从而将三角变换化为指数函数的代数运算,从而使得问题简单化,并给出了欧拉公式在其它几个方面的应用,在高等数学中的部分应用. 欧拉公式cos sin i e i θθθ =+它的证明有各种不同的证明方法,好多《复变 函数》教科书上,是以复幂级数为工具,定义复变指数函数和复变三角函数来进行证明的.下面我们介绍一种新的证明方法:极限法. 证明 令()1n f z i n θ?? =+ ??? (),R n N θ∈∈. 首先证明 ()lim cos sin n f z i θθ→∞ =+. 因为 arg 1n i narctg n n θθ?? ?? += ? ????? , 所以 2 2 211cos sin n n i i narctg i narctg n n n n θθθθ????????? ?+=++ ? ? ? ???????? ?????. 从而2 2 2lim 1lim 1cos sin n n n n i narctg i narctg n n n n θθθθ→∞→∞????????? ?+=++ ? ? ? ???????? ?????.

欧拉法matlab程序学习课件.doc

1.Euler法 function [x,y]=naeuler(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 y(n+1)=y(n)+h*feval(dyfun,x(n),y(n)); end x=x';y=y'; x1=0:0.2:1;y1=(1+2*x1).^0.5; plot(x,y,x1,y1) >> dyfun=inline('y-2*x/y'); [x,y]=naeuler(dyfun,[0,1],1,0.2);[x,y] ans = 0 1.0000 0.2000 1.2000 0.4000 1.3733 0.6000 1.5315 0.8000 1.6811 1.0000 1.8269 2.隐式Euler法 function [x,y]=naeulerb(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 y(n+1)=iter(dyfun,x(n+1),y(n),h); end x=x';y=y'; x1=0:0.2:1;y1=(1+2*x1).^0.5;

plot(x,y,x1,y1) function y=iter(dyfun,x,y,h) y0=y;e=1e-4;K=1e+4; y=y+h*feval(dyfun,x,y); y1=y+2*e;k=1; while abs(y-y1)>e y1=y; y=y0+h*feval(dyfun,x,y); k=k+1; if k>K error('迭代发散'); end end >> dyfun=inline('y-2*x/y'); [x,y]=naeulerb(dyfun,[0,1],1,0.2);[x,y] ans = 0 1.0000 0.2000 1.1641 0.4000 1.3014 0.6000 1.4146 0.8000 1.5019 1.0000 1.5561 3.改进Euler法 function [x,y]=naeuler2(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 k1=feval(dyfun,x(n),y(n)); y(n+1)=y(n)+h*k1; k2=feval(dyfun,x(n+1),y(n+1));

实验8欧拉法_改进欧拉法_线性多步法

西华数学与计算机学院上机实践报告 课程名称:计算方法A 年级:2010级 上机实践成绩: 指导教师:严常龙 姓名:李国强 上机实践名称:解常微分方程初值问题 学号:362011********* 上机实践日期:2013.12.25 上机实践编号:8 上机实践时间:14:00 一、目的 1.通过本实验加深对欧拉法、改进欧拉法、线性多步法的构造过程的理解; 2.能对上述四种方法提出正确的算法描述编程实现,观察计算结果的改善情况。 二、内容与设计思想 自选常微分方程的初值问题,分别用欧拉法、改进欧拉法求解。 分别用以上两种方法求解常微分方程初值问题: 2 '()1,([0.0,1.4],0.1)(0)0.0 y x y h y ?=+=?=?求解区间取步长 三、使用环境 操作系统:Win 8 软件平台:Visual C++ 6.0 四、核心代码及调试过程 #include #include #define f(y) (y*y+1) #define m 0.0//初值为0 #define h 0.1//步长为0.1 #define n 14//迭代次数为14 #define a 0.0//定义区间长度 #define d 1.4 void gjol();//改进欧拉法 void ol();//欧拉法 main() { ol(); printf("\n"); gjol(); } void gjol() {

int i; float y[n+1]; y[0]=m;//赋初值 printf("改进欧拉法\n"); for(i=0;i

数值分析习题六解答

习 题 六 解 答 1、在区间[0,1]上用欧拉法求解下列的初值问题,取步长h=0.1。 (1)210(1)(0)2y y y '?=--?=?(2)sin (0)0x y x e y -'?=+?=? 解:(1)取h=0.1,本初值问题的欧拉公式具体形式为 21(1)(0,1,2,)n n n y y y n +=--= 由初值y 0=y(0)=2出发计算,所得数值结果如下: x 0=0,y 0=2; x 1=0.1,2100(1)211y y y =--=-= x 2=0.2,2211(1)101y y y =--=-= 指出: 可以看出,实际上求出的所有数值解都是1。 (2)取h=0.1,本初值问题的欧拉公式具体形式为 21(sin )(0,1,2,)n x n n n y y h x e n -+=++= 由初值y 0=y(0)=0出发计算,所得数值结果如下: x 0=0,y 0=0; x 1=0.1, 02 1000 (sin )00.1(sin 0)00.1(01)0.1x y y h x e e -=++=+?+=+?+= x 2=0.2, 122110.1 (sin )0.10.1(sin 0.1)0.10.1(0.10.9)0.2 x y y h x e e --=++=+?+=+?+= 指出: 本小题的求解过程中,函数值计算需要用到计算器。 2、用欧拉法和改进的欧拉法(预测-校正法)求解初值问题,取步长h=0.1。 22(00.5) (0)1 y x y x y '?=-≤≤? =? 解:(1) 取h=0.1,本初值问题的欧拉公式具体形式为 2 1(2)(0,1,2,)n n n n y y h x y n +=+-= 由初值y 0=y(0)=1出发计算,所得数值结果如下:

欧拉公式的证明

欧拉公式的证明 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

欧拉公式的证明 着名的欧拉公式e^(iθ)=cosθ+isinθ是人们公认的优美公式。原因是指数函数和三角函数在实数域中几乎没有什么联系,而在复数域中却发现了他们可以相互转化,并被一个非常简单的关系式联系在一起。特别是当θ=π时,欧拉公式便写成了e^(iπ)+1=0,就这个等式将数中最富有特色的五个数0,1,i , e , π ,绝妙地联系在一起 方法一:用幂级数展开形式证明,但这只是形式证明(严格的说,在实函数域带着i只是形式上的) 再抄一遍:??? 设z = x+iy 这样 e^z = e^(x+iy)=e^x*e^(iy),就是 e^z/e^x = e^(iy) 用牛顿幂级数展开式 e^x = 1+x+x^2/2!+x^3/3!+.....+x^n/n!+...... 把 e^(iy) 展开,就得到 e^z/e^x = e^(iy) =1+iy-y^2/2!-iy^3/3!+y^4/4!+iy^5/5!-y^6/6!-..... =(1-y^2/2!+y^4/4!-y^6/6!+.....) +i(y-y^3/3!+y^5/5!-....) 由于 cosy = 1-y^2/2!+y^4/4!-y^6/6!+.....,

siny = y-y^3/3!+y^5/5!-.... 所以 e^(x+iy)=e^x*e^(iy)=e^x*(cosy+isiny) 即 e^(iy) = (cosy+isiny) 方法二:见复变函数第2章,在整个负数域内重新定义了sinz cosz而后根据关系推导出了欧拉公式。着个才是根基。由来缘于此。 方法一是不严格的。 再请看这2个积分 ∫sqrt(x^2-1)dx=x*sqrt(x^2-1)/2-ln(2*sqrt(x^2-1)+2x)/2 ∫sqrt(1-x^2)dx=arcsin(x)/2+x*sqrt(1-x^2)/2; 上式左边相当于下式左边乘以i 于是上式右边相当于下式右边乘以i 然后化简就得到欧拉公式 这个证明方法不太严密 但很有启发性 历史上先是有人用上述方法得到了对数函数和反三角函数的关系 然后被欧拉看到了,才得到了欧拉公式 设a t θ ?R,ρ?R+,a^(it)?z有:

数值计算上机第七题关于改进欧拉方法

7. 取h =0.2,用改进欧拉方法求解下列初值问题。 '(0)5 y y ì?í?=?020x #) 第七题: #include "fstream.h" #include "math.h" int main() { double x0,x1,y0,yp,yc,h; ifstream infile("in.dat"); ofstream outfile("out.dat"); infile>>x0>>x1>>h>>y0;//依次输入x 的初值x0,x 的终值x1,步长h ,y (0)的值y0 outfile<

0 5 0.2 7.03239 0.4 9.89185 0.6 13.9148 0.8 19.5739 1 27.5337 1. 2 38.7287 1.4 54.4735 1.6 76.6169 1.8 107.759 2 151.558 2.2 213.156 2.4 299.787 2.6 421.626 2.8 592.981 3 833.977 3.2 1172.91 3. 4 1649.6 3.6 2320.01 3.8 3262.89 4 4588.97 4.2 6453.97 4.4 9076.93 4.6 12765.9 4.8 17954.1 5 25250.8 5.2 35513 5.4 49945.8 5. 6 70244.3 5.8 98792.3

第8章 常微分方程数值解法 本章主要内容: 1.欧拉法、改进欧拉法 2

第8章 常微分方程数值解法 本章主要内容: 1.欧拉法、改进欧拉法. 2.龙格-库塔法。 3.单步法的收敛性与稳定性。 重点、难点 一、微分方程的数值解法 在工程技术或自然科学中,我们会遇到的许多微分方程的问题,而我们只能对其中具有较简单形式的微分方程才能够求出它们的精确解。对于大量的微分方程问题我们需要考虑求它们的满足一定精度要求的近似解的方法,称为微分方程的数值解法。本章我们主要 讨论常微分方程初值问题?????==00 )() ,(y x y y x f dx dy 的数值解法。 数值解法的基本思想是:在常微分方程初值问题解的存在区间[a,b]内,取n+1个节点a=x 0<x 1<…<x N =b (其中差h n = x n –x n-1称为步长,一般取h 为常数,即等步长),在这些节点上把常微分方程的初值问题离散化为差分方程的相应问题,再求出这些点的上的差分方程值作为相应的微分方程的近似值(满足精度要求)。 二、欧拉法与改进欧拉法 欧拉法与改进欧拉法是用数值积分方法对微分方程进行离散化的一种方法。 将常微分方程),(y x f y ='变为() *+=?++1 1))(,()()(n x n x n n dt t y t f x y x y 1.欧拉法(欧拉折线法) 欧拉法是求解常微分方程初值问题的一种最简单的数值解法。 欧拉法的基本思想:用左矩阵公式计算(*)式右端积分,则得欧拉法的计算公式为:N a b h N n y x hf y y n n n n -= -=+=+)1,...,1,0(),(1 欧拉法局部截断误差 11121 )(2 ++++≤≤''=n n n n n x x y h R ξξ或简记为O (h 2)。

实验五 欧拉法Matlab实验报告

北京理工大学珠海学院实验报告 ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 班级2012电气2班学号120109021010姓名陈冲指导教师张凯成绩 实验题目(实验五)欧拉法实验地点及时间JD501 2014/1/2(6-7节) 一、实验目的 1.掌握用程序语言来编辑函数。 2.学会用MATLAB编写Euler.m以及TranEuler.m函数。 二、实验环境 Matlab软件 三、实验内容 1、以书中第124页题目11为例编辑程序来实现计算结果。 2、使用MATLAB进行编写: 第一步:编写Euler.m函数,代码如下 编写TranEuler.m函数,代码如下 第二步:利用上述函数编辑命令:(可见实验结果中的截图)

在此之前先建立一个名为f.m 的M 文件,代码如下 function z=f(x); z=8-3y; 再编辑代码: 得到了欧拉法的结果:y (0.4)=2.47838030901267 编辑另一段命令: 得到改进欧拉法的结果:y (0.4)=2.46543714659780 在此基础上,我还编辑龙格库达的命令窗口代码,如下: 四、实验题目 用欧拉法和改进欧拉法求解初值问题'83,(0)2y y y =-=,试取步长0.2h =计算(0.4)y 的近似值。 五、实验结果

六、总结 通过这次实验我掌握了将得到的解进一步精确,而且要学会比较这几种方法的精确性,显然,四阶龙格库达比改进欧拉发精确,改进欧拉发比欧拉法精确。 实验难度不大,要比较n的取值不同,产生的影响不同。

欧拉公式的证明和应用

欧拉公式的证明和应用https://www.360docs.net/doc/682297419.html,work Information Technology Company.2020YEAR

数学文化课程报告 欧拉公式的证明与应用 一 .序言------------------------------------------------------------------------2 二.欧拉公式的证明--------------------------------------3 1.1 极限法 --------------------------------------3 1.2 指数函数定义法-------------------------------4 1.3 分离变量积分法-------------------------------4 1.4 复数幂级数展开法-----------------------------4 1.5 变上限积分法---------------------------------5

1.6 类比求导法-----------------------------------7 三.欧拉公式的应用 2.1 求高阶导数-----------------------------------7 2.2 积分计算------------------------------------8 2.3 高阶线性齐次微分方程的通解------------------9 2.4 求函数级数展开式----------------------------9 2.5 三角级数求和函数----------------------------10 2.6 傅里叶级数的复数形式-------------------------10 四.结语------------------------------------------------11 参考文献-----------------------------------------------11 一.序言 欧拉是十八世纪最杰出的最多产的数学家之一[1],留下了数不胜数的以其名 字命名的公式。本文关注的欧拉公式x i x e ix sin cos +=,在复数域中它把指数函数 联系在一起。特别当π=x 时,欧拉公式便写成了01=+πi e ,这个等式将最富有特 色的五个数π,,,,10e i 绝妙的联系在一起,“1是实数的基本单位,i 是虚数的基本单位,0是唯一的中性数,他们都具有独特的地位,都具有代表性。i 源于代数,

相关文档
最新文档