f.m文件:

% du/dx=f
function d=f(x, u)d=(2*u/x) +(x^2)*exp(x);
end

欧拉法

Euler.m文件:

function [x,u]=Euler(h)x1=1;x2=2;u1=0;N=abs(x2-x1)/h; u=zeros(N+1,1);x=zeros(N+1,1);u(1)=u1;x(1)=x1;    for i=1: Nx(i+1)=x1+i*h;u(i+1)=u(i)+h*f( x(i), u(i) );              end
end

控制台输入:

[x1,y1] =Euler(0.1);
[x2,y2] =Euler(0.05);
[x3,y3] =Euler(0.01);
plot(x1,y1,'b');hold on;
plot(x2,y2,'g');hold on;
plot(x3,y3,'r');
xlabel('x');
ylabel('u');
legend('h=0.1','h=0.05','h=0.01',
'Location','northwest');

改进的Euler法

improvedEuler.m文件:

function [x,u]=improvedEuler(h)x1=1;x2=2;u1=0;N=abs(x2-x1)/h; u=zeros(N+1,1);x=zeros(N+1,1);u(1)=u1;x(1)=x1;    for i=1: Nx(i+1)=x1+i*h;up=u(i)+h*f( x(i), u(i) );uc=u(i)+h*f( x(i+1), up);u(i+1)=(up+uc)/2;        end
end

控制台输入:

[x1,y1] = improvedEuler(0.1);
[x2,y2] = improvedEuler(0.05);
[x3,y3] = improvedEuler(0.01);
plot(x1,y1,'b');hold on;
plot(x2,y2,'g');hold on;
plot(x3,y3,'r');
xlabel('x');
ylabel('u');
legend('h=0.1','h=0.05','h=0.01',
'Location','northwest');

四阶龙格库塔法

RungeKutta.m文件:

function [x,u]=RungeKutta(h)
a=1;
b=2;
u1=0;
N=floor((b-a)/h);
x(1)=a;
u(1)=u1;for ii=1:N
x(ii+1)=x(ii)+h;
k1=f(x(ii),u(ii));
k2=f(x(ii)+h/2,u(ii)+h*k1/2);
k3=f(x(ii)+h/2,u(ii)+h*k2/2);
k4=f(x(ii)+h,u(ii)+h*k3);
u(ii+1)=u(ii)+h*(k1+2*k2+2*k3+k4)/6;
end

控制台输入:

[x1,y1] = RungeKutta(0.1);
[x2,y2] = RungeKutta(0.05);
[x3,y3] = RungeKutta(0.01);
plot(x1,y1,'b');hold on;
plot(x2,y2,'g');hold on;
plot(x3,y3,'r');
xlabel('x');
ylabel('u');
legend('h=0.1','h=0.05','h=0.01',
'Location','northwest');

完结撒花~

MATLAB 欧拉法、改进的欧拉法、龙格库塔法相关推荐

  1. 欧拉法、改进的欧拉法、龙格-库塔法求解初值问题

    求解初值问题 简介 前期准备 欧拉法 改进的欧拉法 龙格-库塔法 标准四阶显式Kutta公式 三级三阶显式公式 四级四阶显式Kutta公式 四级四阶显式Gill公式 示例 MATLAB代码 结果 简介 ...

  2. 欧拉法、预估校正法(改进的欧拉法)与四阶龙格库塔法求解常微分方程的数值解C++程序

    以y'=x+y,0<x<1,y(0)=1为例,取步长h=0.1,已知精确值为y=-x-1+2e^x,用来进行精度比较 #include<stdio.h> using names ...

  3. python 拟牛顿法 求非线性方程_有限元简单科普之——改进的欧拉法

    上一篇我们提到,在土力学领域的有限元计算中,计算机每一步的计算本质都是在求解下面的方程: 即每一个步长的刚度矩阵乘以节点位移向量等于荷载向量,在一个步长内,我们假定刚度矩阵不变,用优化的牛顿法(Mod ...

  4. 数值分析27 - 常微分方程迭代解法之 显式欧拉法、隐式欧拉法、中点欧拉法、梯形欧拉法

    显式欧拉法 隐式欧拉法 中点欧拉法 梯形欧拉法 误差 例子

  5. 【趋势分析方法二】MATLAB实现改进M-K趋势分析

    MATLAB实现改进M-K趋势分析 1 Modified Mann-Kendall检验 1.1 原理 1.2 MATLAB实现代码 2 案例 2.1 M-K趋势检验 2.2 MMK趋势检验 2.3 P ...

  6. matlab:使用改进欧拉法,求解微分方程

    %书籍:常用数值算法及其matlab实现 %第10章 常微分方程初值问题的数值解法 %改进欧拉方法 function S = impeuler(fun, x0, xn, y0, h) %fun:微分方 ...

  7. [算法] [常微分方程] [欧拉法 改进欧拉法 经典R-K算法]

    1 #include<iostream> 2 #include<cmath> 3 #include<cstdio> 4 #include<iomanip> ...

  8. 模拟退火算法团簇matlab,基于改进Basin-Hopping Monte Carlo算法的Fen-Ptm(5≤n+m≤24)合金团簇结构优化...

    摘要: 合金纳米团簇可以充分利用多种金属的协同效应来实现材料的多功能特性,因而备受关注.本文利用改进的Basin-Hopping Monte Carlo算法研究了不同尺寸和不同比例下的Fe-Pt二元合 ...

  9. Matlab仿真——改进的MUSIC算法

    问题概要: 利用 MUSIC空间谱将混合的多重信号分离开,称为多重信号分类方法,简称 MUSIC算法. 此次改进版MUSIC算法来自张贤达老师<现代信号处理(第三版)>算法10.4.1,基 ...

最新文章

  1. char与varchar的区别
  2. 心中无码,自然高清 | 联合去马赛克与超分辨率研究论文Pytorch复现
  3. golang new make 区别
  4. define 函数定义注意
  5. 基于springMVC拦截器实现操作日志统计
  6. [Leetcode][第459题][JAVA][重复的字符串][子串][匹配]
  7. linux 卸载 openldap,Linux下安装openldap
  8. torch.backends.cudnn.benchmark--提升卷积神经网络的运行速度
  9. qmc0文件怎么转换mp3_音频转换器哪个好 怎么剪切MP3音频制作手机铃声
  10. Java运行Shell脚本
  11. intelx79服务器芯片组,Intel X79 高速芯片组是什么
  12. Astah Professional三维图,网络上轻松上传图表
  13. JavaScript正则表达式学习笔记(一)
  14. GRP-U8怎么增加项目
  15. winform直接控制云台_比 2 代便宜的灵眸手机云台 3,竟然还多了 15 条新亮点!...
  16. Elasticsearch 7.9 之 Frozen indices
  17. Cartographer的CSM理解
  18. js使用eval解析json(js中使用json)
  19. TestNG测试报告美化buid.xml配置
  20. 京东入职一周感悟:4个匹配和4个观点

热门文章

  1. cf-tool 简易使用教程
  2. w7系统出现无法更新服务器,win7系统自动更新选项不能用了的解决方法
  3. vue.js毕业设计,基于vue.js前后端分离订座预约系统(H5移动项目) 开题报告
  4. 想学习C语言?这里有非常实用的C语言技巧,进来看看吧!
  5. 在我的智能手机上使用 mysql 运行节点服务器
  6. isolar bsw配置工具的基本配置CanIf
  7. 解决OneNote for Windows10无法联网及同步笔记问题
  8. 在线文档的制作(包含txt,word,pdf,excel的文档类型,一应俱全哦)
  9. [优化精髓]搜索引擎优化应该重视什么?
  10. .split()用法解释