文档详情

数值实验报告..doc

发布:2017-01-09约2.53千字共7页下载文档
文本预览下载声明
数 值 分 析 学 生 实 验 报 告 实验课程名称 数值分析 开课实验室 信工学院152实验室 学 院 信工学院3年级 计算机专业班 学 生 姓 名 马美旭 学 号 513109030116 开 课 时 间 2013 至 2014 学年第 一 学期 总 成 绩 教师签名 《用差分格式求解微分方程初值》实验报告 学院 信息工程学院 年级、专业、班 13级计算机1班 姓名 马美旭 成绩 课程 名称 数值分析 实验项目 名 称 用差分格式求解方程 项目类型 设计 教师评语 教师签名: 年 月 日 一、实验目的 掌握Euler格式、梯形格式、改进的Euler格式算法,能够根据给定的微分方程和初值求解对应的函数值。 二、实验原理 算法或公式(在开始本实验之前,请回顾教科书的相关内容) Euler格式: 梯形格式: 改进的Euler格式: 三、实验内容及要求 已知 要求:试用Euler格式、梯形格式、改进的Euler格式求微分方程对应函数值,并比较其结果。 四、实验过程: 1)编写Matlab函数M文件eul如下: function eul(x0,y0,b,h) n=fix((b-x0)/h); y1=zeros(n,1); for i=1:n x(i)=x0+h; y0=y0+h*fa(x0,y0); y(i)=y0; x0=x0+h; y1(i)=sqrt(1+2*x0); end [x y] plot(x,y1,r:*,x,y,b:v) 2)编写Matlab函数M文件tixing如下: function tixing(x0,y0,b,h) n=fix(b-x0)/h; y1=zeros(n,1); for i=1:n x(i)=x0+h; yi=y0+h*fa(x0,y0); yj=y0+h*(fa(x0,y0)+fa(x0+h,yi))/2; x0=x0+h; y0=yj; y(i)=y0; y1(i)=sqrt(1+2*x0); end [x y] plot(x,y1,r:*,x,y,b:v) 3)编写Matlab函数M文件eult如下: function eult(x0,y0,b,h) n=fix(b-x0)/h; y1=zeros(n,1); for i=1:n x(i)=x0+h; yi=y0+h*fa(x0,y0); yj=y0+h*(fa(x0,y0)+fa(x0+h,yi))/2; while abs(yj-yi)eps p=yj; yj=y0+h*(fa(x0,y0)+fa(x0+h,yj))/2; yi=p; end x0=x0+h; y0=yj; y(i)=y0; y1(i)=sqrt(1+2*x0); end [x y] plot(x,y1,r:*,x,y,b:v) 编写M文件fa function fa=fa(x,y) fa=y-2*x/y; end 五、实验结果及分析 实验结果 执行Euler格式的结果如下: eul(0,1,1,0.1) ans = 0.1000 1.1000 0.2000 1.1918 0.3000 1.2774 0.4000 1.3582 0.5000 1.4351 0.6000 1.5090 0.7000 1.5803 0.8000 1.6498 0.9000 1.7178 1.0000 1.7848 执行梯形格式的结果如下: tixing(0,1,1,0.1) ans = 0.1000 1.0959 0.2000 1.1841 0.3000 1.2662 0.4000 1.3434 0.5000 1.4164 0.6000 1.4860 0.7000 1.5525 0.8000 1.6165 0.9000 1.6782 1.0000 1.7379 执行改进的Euler格式的结果如下: e
显示全部
相似文档