本学期微分方程数值解课程总结(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 ...
随机推荐
- TypeScript设计模式之职责链、状态
看看用TypeScript怎样实现常见的设计模式,顺便复习一下. 学模式最重要的不是记UML,而是知道什么模式可以解决什么样的问题,在做项目时碰到问题可以想到用哪个模式可以解决,UML忘了可以查,思想 ...
- 3361: [Usaco2004 Jan]培根距离
3361: [Usaco2004 Jan]培根距离 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 16 Solved: 13[Submit][Sta ...
- swift -- 类中的方法
一. 引用类型 类 在类中定义方法 class Person { //属性 var name : String = "" //方法 //实例方法 : 在类里面创建一个方法 fun ...
- 关于java泛型
<T> 代表的是泛型 ,实例化的时候将传入真正的数据类型,比如: public interface BaseProvider<T>{ public T test(); } 实例 ...
- Visual Studio 2017正式版安装
Visual Studio号称宇宙第一IDE, 2017年3月7日强大的微软帝国时隔两年多终于发布新一代IDE Visual Studio 2017.支持的功能简直不能太多,详情移步:https:// ...
- AndroidTest工程的自定义gradle task
由于需要将assets目录的资源拷贝到设备sdcard中,然而我的工程是一个android test工程,而android test工程在编译阶段,不会把assets目录的资源打包成对应apk,而为了 ...
- iOS网络编程笔记——社交网络编程
社交网络编程主要使用iOS提供的social框架,目前social框架主要分为两个类: (1)SLComposeViewController提供撰写社交信息(如微博信息)的视图控制器,由iOS系统提供 ...
- JVM中GC浅解:垃圾回收的了解
1.为什么要有GC 没有GC的世界,我们需要手动进行内存管理,但是内存管理是纯技术活,又容易出错.但是我们写码的目的是为了解决业务问题,所以可以把这种纯技术活自动化,当然自动化也是有代价的. 2.垃圾 ...
- autoLayer:一基本布局
我不会写博客,写的不好请物见怪,这个autoLayer我就直接上图了: 本人环境:IDE(Xcode6)SDK(IOS8) 准备工作:找一个横图psd(由于我不会切图,我只会简单的描述一下图片处理), ...
- 整理:20个非常有用的Java程序片段
下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric strin ...