本学期微分方程数值解课程总结(matlab代码)
- 最简单求解一个微分方程数值解得方法:Euler法
function [x,y]=Euler_method(dufun,span,h,x0,y0)
%EuLer格式,
%求解方程y'=dufun(x,y);其中x \in[a,b];y0为初始值;n为自变量的离散个数;y为求解结果
x=span(1):h:span(2);
n=length(x);
y=zeros(1,n);%存放数值的解
x(1)=x0;
y(1)=y0;
for i=1:n-1
y(i+1)=y(i)+h.*feval(dufun,x(i),y(i));%Euler格式
end
2.改进的Euler格式
function[x,y]=Gaijin_Euler(func,span,h,x0,y0)
%改进的Euler格式;
%span为区间
%y(x0)=y0;
%n表示区间等份;
x=span(1):h:span(2);
n=length(x);
y=zeros(1,n);
x(1)=x0;
y(1)=y0;
for i=1:n
y1=y(i)+h*feval(func,x(i),y(i));
y2=y(i)+h*feval(func,x(i+1),y1);
y(i)=(y1+y2)/2;
end
方法二:常见的Rungerkutta3与Rungerkutta4格式
1.Rungerkutta3
function [x,y]=Rungekutta3(f1,span,h,x0,y0)
x=span(1):h:span(2);
n=length(x);
y=zeros(1,n);
x(1)=x0;
y(1)=y0;
for j=1:n-1
K1=feval(f1,x(j),y(j));
K2=feval(f1,x(j)+h/2,y(j)+h/2*K1);
K3=feval(f1,x(j)+h,y(j)-h*K1+h*2*K2);
y(j+1)=y(j)+(h/6)*(K1+4*K2+K3);
end
1.Rungerkutta4
function [x,y]=Rungekutta4(f1,span,h,x0,y0)
x=span(1):h:span(2);
n=length(x);
y=zeros(1,n);
x(1)=x0;
y(1)=y0;
for j=1:n-1
K1=feval(f1,x(j),y(j));
K2=feval(f1,x(j)+h/2,y(j)+h/2*K1);
K3=feval(f1,x(j)+h/2,y(j)+h/2*K2);
K4=feval(f1,x(j)+h,y(j)+h*K3);
y(j+1)=y(j)+(h/6)*(K1+2*K2+2*K3+K4);
end
本学期微分方程数值解课程总结(matlab代码)的更多相关文章
- 调试和运行matlab代码(源程序)的技巧和教程
转载请标明出处:专注matlab代码下载的网站http://www.downma.com/ 本文主要给大家分享使用matlab编写代码,完成课程设计.毕业设计或者研究项目时,matlab调试程序的技巧 ...
- 如何加速MATLAB代码运行
学习笔记 V1.0 2015/4/17 如何加速MATLAB代码运行 概述 本文源于LDPCC的MATLAB代码,即<CCSDS标准的LDPC编译码仿真>.由于代码的问题,在信息位长度很长 ...
- 多分类问题中,实现不同分类区域颜色填充的MATLAB代码(demo:Random Forest)
之前建立了一个SVM-based Ordinal regression模型,一种特殊的多分类模型,就想通过可视化的方式展示模型分类的效果,对各个分类区域用不同颜色表示.可是,也看了很多代码,但基本都是 ...
- 卷积相关公式的matlab代码
取半径=3 用matlab代码实现上式公式: length=3;for Ki = 1:length for Kj = 1:length for Kk = 1:length Ksigma(Ki,Kj,K ...
- JAVA调用matlab代码
做实验一直用的matlab代码,需要嵌入到java项目中,matlab代码拼拼凑凑不是很了解,投机取巧采用java调用matlab的方式解决. 1. matlab版本:matlabR2014a ...
- 直方图均衡化与Matlab代码实现
昨天说了,今天要好好的来解释说明一下直方图均衡化.并且通过不调用histeq函数来实现直方图的均衡化. 一.直方图均衡化概述 直方图均衡化(Histogram Equalization) 又称直方图平 ...
- 将labelme 生成的.json文件进行可视化的代码+label.png 对比度处理的matlab代码
labelme_to_dataset 指令的代码实现: show.py文件 #!E:\Anaconda3\python.exe import argparse import json import o ...
- 关于本科毕业论文《Laguerre小波在数值积分与微分方程数值解中的应用》存在的问题与小结
本科的毕业设计<Laguerre小波在数值积分与微分方程数值解中的应用>是通过Laguerre小波函数来近似表达某个需要求积分或解微分方程的函数,将原函数很难求得函数用小波函数表达出来,这 ...
- SVM实例及Matlab代码
******************************************************** ***数据集下载地址 :http://pan.baidu.com/s/1geb8CQf ...
随机推荐
- 启动phpstyle Apache的80端口被win7的System PID=4的进程占用的解决方法
学习前端是,用到Ajax,php语言,操作mysql数据库,浏览器无法解析php代码(把源码输出):原因,我之前用的是tomcat服务器写jsp,servlet,php用的是apache服务器,没有配 ...
- Jdom读取XML文件
学习Spring时,我们经常看到很多xml配置文件,Spring通过在配置文件中的配置,使用IOC(控制反转),从而实现代码的灵活性,本篇我就为大家介绍一种解析xml方式--Jdom 首先我们到Jdo ...
- 【树莓派】Linux自动配置IP
由于需要配置多台树莓派设备,但需要将IP配置为静态IP,而一台一台手动执行比较慢,所以写了一份脚本,sudo 执行即可. 将下面内容复制在家目录下,命名为auto.sh 然后执行 sudo sh au ...
- UI自动化测试表单重要代码
public class frame { public static void main(String[] args) { // TODO Auto-generated method stub Sys ...
- 解决mac os下mcss命令报错:env: node\r: No such file or directory
标题无“转载”即原创文章,版权所有.转载请注明来源:http://besteam.im/blogs/article/31/. 我一直对字符界面有抵触感,即使会用vim,我的linux脚本(python ...
- iwebshop上传类的使用
$upload = new IUpload('10240000',array('jpg','gif','png')); $dir = "upload/dian"; $upload- ...
- windows_keyboard shortcuts快捷键
单独按Windows:显示或隐藏"开始"功能表 Windows+BREAK:显示"系统属性" 对话框 Windows+D:显示桌面 Windows+M:最小化所 ...
- JDK中日期和时间的几个常用类浅析(四)
java.time.Instant java.time.Instant类对应的是时间线上的一个时间点.该类通过保存着从格林威治的起始时间(1970年一月一日零点零分)开始计算所经过的纳妙数来表示时 ...
- 第三方登录 ----QQ登录
学习之前,请大家先看一下oAuth协议. 首先呢,我们进入QQ互联的官方网站 http://connect.qq.com登入我们自己的QQ号,没有QQ号的小伙伴可以忽略本篇博文分享!
- 苹果App删除 AppStore应用删除指南
最近做IOS应用上传时,想改一下SUK或者Bundle ID ,发现改不了,只能删除. 但是删除却没有找到删除按钮,百度半天不给力,不过后来多亏一位群里的兄弟给找个链接,终于解决 今天就给他记录下来, ...