欧拉法matlab程序学习课件.doc
- 格式:doc
- 大小:92.50 KB
- 文档页数:3
⽤MATLAB程序⽣动地演⽰欧拉公式下⾯的MA TLAB 程序⽣动地演⽰欧拉公式Exp(t) = cos(t) + j sin(t)% Henry-104% 本程序演⽰欧拉公式% Jan.25th,2012%h_fig1 = figure;set(h_fig1, 'unit', 'normalized', 'position', [0.1, 0.1, 0.9, 0.9]);set(h_fig1, 'defaultuicontrolunits', 'normalized');h_text1 = uicontrol(h_fig1, 'Style', 'text', 'Position', [0.71, 0.73, 0.25, 0.05],... % 创建⽂本框'String', '▲是cos 曲线的起点', 'ForegroundColor', 'r', 'FontName', '⿊体',...'FontSize', 12, 'FontWeight', 'Bold', 'BackgroundColor', [1, 1, 1]);h_text2 = uicontrol(h_fig1, 'Style', 'text', 'Position', [0.71, 0.78, 0.25, 0.05],... % 创建⽂本框'String', 'Δ是sin 和exp 曲线的起点', 'ForegroundColor', 'r', 'FontName', '⿊体',...'FontSize', 12, 'FontWeight', 'Bold', 'BackgroundColor', [1, 1, 1]);h_pushbutton1 = uicontrol(h_fig1, 'Style', 'PushButton', 'Position', [0.82, 0.12, 0.07, 0.06],...'string', '退出', 'BackgroundColor', [0.8 0.9 0.8], 'ForegroundColor', 'r', 'FontSize', 14, 'FontWeight', 'Bold',...'callback', 'delete(h_fig1),')h_axes0 = axes('Box', 'on', 'Position', [0.15, 0.18, 0.56, 0.68], 'FontSize', 8)set(gcf,'color','w');w = 0.1*pit = 0:40; % 在前进⽅向绕了2 圈%a = -ones(1,length(t));plot3(cos(w*t),t,sin(w*t),'b', 'LineWidth', 2);grid on; hold on;hc = plot3(cos(w*t),t,a,'k--'); hold on;set(hc, 'Color', 'r', 'LineWidth', 2);a=-a;hs = plot3(a,t,sin(w*t),'r-.'); hold on;set(hs, 'Color', 'k', 'LineWidth', 2);text(0.7,0.3,0.6, ' <-- CCW', 'FontSize', 14, 'FontWeight', 'Bold'); text(1,0,-1, ' ▲Cos', 'Color', 'r', 'FontSize', 14, 'FontWeight', 'Bold'); text(1,0,0, ' Δ Sin', 'FontSize', 14, 'FontWeight', 'Bold');%xlabel('x', 'FontSize', 14, 'FontWeight', 'Bold');ylabel('t', 'FontSize', 14, 'FontWeight', 'Bold');zlabel('y', 'FontSize', 14, 'FontWeight', 'Bold');title('演⽰欧拉公式y = exp(jwt) = cos(wt) + jsin(wt)', 'Color', 'b', …'FontSize', 18, 'FontWeight', 'Bold');%line([-1,-1],[39.9,39.9],[-1,1],'LineWidth',3, 'Color', 'r');line([1,1],[39.9,39.9],[-1,1],'LineWidth',3, 'Color', 'r');line([-1,-1],[0,0],[-1,1],'LineWidth',3, 'Color', 'r');line([1,1],[0,0],[-1,1],'LineWidth',3, 'Color', 'r');line([-1,-1],[0,40],[-1,-1],'LineWidth',3, 'Color', 'k');line([-1,1],[0,0],[-1,-1],'LineWidth',3, 'Color', 'b')line([-1,1],[40,40],[1,1],'LineWidth',3, 'Color', 'b')line([-1,1],[40,40],[-1,-1],'LineWidth',3, 'Color', 'b')line([-1,1],[0,0],[1,1],'LineWidth',3, 'Color', 'b')line([-1,1],[0,0],[0,0],'LineWidth',2, 'Color', 'k');line([0,0],[0,0],[-1,1],'LineWidth',2, 'Color', 'k');line([0,0],[40,40],[-1,1],'LineWidth',2, 'Color', 'k');line([0,0],[0,40],[0,0],'LineWidth',2, 'Color', 'k');line([-1,1],[40,40],[0,0],'LineWidth',2, 'Color', 'k');line([0,0],[0,40],[0,0],'LineWidth',2, 'Color', 'k');text(0,0,0.12,'O', 'FontSize', 14, 'FontWeight', 'Bold', 'Color', 'r') text(0,40,0.12,'O', 'FontSize', 14, 'FontWeight', 'Bold', 'Color', 'b')程序运⾏结果如下所⽰。
欧拉法求解微分方程matlab引言微分方程是数学中一类重要的方程,广泛应用于物理、工程、经济等领域。
而求解微分方程是数学建模与计算科学中的一个关键问题,其中欧拉法是一种常用的数值求解微分方程的方法。
本文将介绍欧拉法的原理和具体实现方法,并用MATLAB进行实例演示。
欧拉法原理欧拉法是一种基于近似和离散化的数值求解微分方程的方法。
它的基本思想是将微分方程转化为差分方程,通过近似求解差分方程来得到微分方程的近似解。
以一阶常微分方程为例,我们设方程为dy/dx = f(x, y),其中f(x, y)为已知函数。
欧拉法的基本思想是通过将自变量x的区间[a, b]离散化为多个小区间,然后在每个小区间上用线性插值来计算近似解。
具体步骤如下:1.将区间[a, b]平均分割成n个小区间,每个小区间的宽度为h = (b - a) /n。
2.初始化近似解的初始值,通常是在初始点(a, y0)处,其中y0为已知的初始条件。
3.根据差分方程的递推关系式,依次计算每个小区间上的近似解,直到达到终点(b, yn)。
递推关系式为:yn+1 = yn + h * f(xn, yn),其中xn为当前区间的起点。
欧拉法的优缺点欧拉法作为一种简单直观的数值求解方法,具有以下优点:•简单易懂,易于理解和实现。
•计算代价较小,在有限的计算资源下能够快速求解微分方程。
•在某些情况下能够得到较为精确的近似解。
然而,欧拉法也存在一些缺点:•求解精度有限,特别是在计算步长较大或方程非线性的情况下,误差会积累导致结果偏差较大。
•对于某些特殊的微分方程,欧拉法可能不收敛或产生不稳定的结果。
•仅适用于离散化步长较小的情况,对于某些复杂的微分方程,求解效果可能较差。
在实际应用中,我们需要根据具体的问题和求解要求来选择合适的数值求解方法,欧拉法只是其中的一种选择。
欧拉法的MATLAB实现以下是欧拉法在MATLAB中的实现代码:function [x, y] = eulerMethod(f, a, b, y0, n)h = (b - a) / n;x = a:h:b;y = zeros(1, n+1);y(1) = y0;for i = 1:ny(i+1) = y(i) + h * f(x(i), y(i));endend在该代码中,我们定义了一个名为eulerMethod的函数,该函数接受以下参数:•f:已知函数f(x, y),表示微分方程dy/dx = f(x, y)的右侧项。