MATLAB教案


    



    第章 MATLAB简介
    ………………………………………
    1
    第二章 进阶绘图功
    ………………………………………
    18
    第三章 MATLAB函数
    ………………………………………
    24
    第四章 线形代数矩阵
    ………………………………………
    32
    第五章 联立线性方程组
    ………………………………………
    37
    第六章 插曲线拟合
    ………………………………………
    38
    第七章 方程组根
    ………………………………………
    43
    第八章 数值积分微分
    ………………………………………
    46
    第九章 常微分方程组
    ………………………………………
    49
    第十章 MATLAB数值计算实
    ………………………………………
    52

    第章 MATLAB简介

    11 MATLAB 视窗环境
    进入MATLAB会道视窗MATLAB Command Window称指令视窗键入指令方 MATLAB计算结果显示功菜单File Edit View Web Windows Help六功层功会面相关方说明


    12 简易数学
    先MATLAB数学运算开始说明计算器样数学式计算直接果算 1+2+31×10+2×20+3×30二式子例子接著提示符号>>键入算式MATLAB计算 结果ans显示果算式x1+2+3MATLAB计算结果x显示
    >> 1+2+3
    ans
    6
    >> 1*10 + 2*20 + 3*30
    ans
    140
    >> x1+2+3
    x
    6
    果述例子结尾加’’计算结果会显示指令视窗知计算值须键入该变量值
    >> x1+2+3
    >> x
    x
    6
    例子显示MATLAB变量弹性
    >> apple5
    apples
    5
    >> orange10
    orange
    10
    >> total_costapple*2+orange*4
    total_cost
    50
    >> average_costtotal_cost(apple+orange)
    average_cost
    333334
    MATLAB提供基算术运算:
    加 (+)减 () (*) ()幂次方 (^)范例:5+3 53 5*3 53 5^3
    计算常功算式说明计算面积Area 半径r 2键入
    >> r2
    >> areapi*r^2
    >> area
    125664
    述指令行 分开例
    >> r2 areapi*r^2
    >> r2 areapi*r^2
    请注意述二式差异前者计算值显示者果指令长结尾加(代表行指 令行连续)例
    >> r2
    >> area pi
    *r^2
    外符号注解起头说文字视程序注解注解功简说明 程序容注解程序中许没必写程序时太少注解产生混淆 方应该省注解适量注解想解程序时节省必时间「没懂」痛 苦例
    >> r2 键入半径
    >> areapi*r^2 计算面积
    MATLAB计算结果精确度数字格式显示指令视窗功菜单Options 选 Numerical Format者直接指令视窗键入数字显示格式指令π值例
    指令
    数字值
    说明
    format short
    31416
    预设 4 位效数位数
    format long
    314159265358979
    15 位效数位数
    format short e
    31416e+000
    4 位效数位数加指数表格式

    13 变量
    MATLAB变量名称规定:
    1 变量名称英文写区(apple Apple AppLe三变量)
    2 变量长度限 19 字元
    3 变量名第字必须英文字掺杂英文字数字底线
    列出MATLAB定义特变量意义
    变量名
    意义
    help
    线说明 help quit
    who
    列出定义变量名称
    ans
    次计算结果变量名
    eps
    MATLAB定义正极值22204e16
    pi
    建π值
    inf
    ∞值正穷
    NaN
    定值
    i j
    虚数单位
    Version
    MATLAB版
    NARGIN
    函数输入参数数
    NARGOUT
    函数输出参数数

    14 功
    MATLAB利↑↓二光标键指令回重覆↑前次指令重新出现 Enter键执行前次指令↓键功执行指令
    键盘键→← Delete Insert功显易见试知须加说明
    暂时执行操作系统(例Dos)指令执行MATLAB利加原操作系统指令例 dir format a
    键入who查定义变量名称键入clear定义变量名称果xy 二变量键入clear x y
    CtrlC(时CtrlC二键)中止执行中MATLAB工作

    15 线帮助
    MATLAB系统中相关线(online)求助方式三:
    1 利help指令果已知找题材 (topic) 话直接键入help 身旁没手册help指令查询熟悉指令题材法例help sqrt help topic
    2 利lookfor指令键入关键字(keyword)(始关键字MATLAB指令)列出 相关题材例lookfor cosine lookfor sine
    3 利指令视窗功菜单中Help中选取Table of Contents(目录)Index(索引)

    >> help sqrt
    SQRT Square root
    SQRT(X) is the square root of the elements of X Complex
    results are produced if X is not positive
    >> help monkey
    monkey not found
    >>* lookfor tangent
    ACOT Inverse cotangent
    ACOTH Inverse hyperbolic cotangent
    ATAN Inverse tangent
    ATANH Inverse hyperbolic tangent
    ATAN2 Four quadrant inverse tangent
    COT Cotangent
    COTH Hyperbolic cotangent
    TAN Tangent
    TANH Hyperbolic tangent
    >> help atan
    ATAN Inverse tangent
    ATAN(X) is the arctangent of the elements of X See also ATAN2

    16 简易数组
    MATLAB运算事实数组 (array) 矩阵 (matrix) 方式做运算二者MATLAB基运算性质 数组强调元素元素运算矩阵采线性代数运算方式说明定义矩阵矩阵详细运算语法留第四章说明
    宣告变量数组矩阵时果键入元素须中括号[ ] 元素置中数组维元素 构成矩阵维元素组成例
    >> x [1 2 3] 维 1x3 数组
    >> x [1 2 3 4 5 6] 二维 2x3 矩阵区隔列元素
    >> x [1 2 3 二维 2x3 矩阵列元素分二行键入
    4 5 6]
    假设计算 y sin (x) 0 x πx 0 02π 04ππ数组方式运算例
    >> x [0 02*pi 04*pi 06*pi 08*pi pi] 注意数组作运算
    x
    0 06283 12566 18850 25133 31416
    >> ysin(x)
    y
    0 05878 09511 09511 05878 00000
    找出数组某元素数元素参考例子
    >> x(3) 第三x元素
    ans
    12566
    >> y(5) 第五y元素
    ans
    05878
    >> x(15) 列出第第五x元素
    ans
    0 06283 12566 18850 25133
    >> y(311) 列出第三第y元素3起始值1终止值1增量
    ans
    09511 05878 0
    >> x(226) 列出第二第六x元素2起始值6终止值2增量
    ans
    06283 18850 31416
    >> y([4 2 5 1]) 列出y元素排列元素序原y数组4251
    ans
    09511 05878 05878 0

    17 建立数组
    前节提数组产生方式须键入元素方法适数组元素少时果建立数组元素 达数百须采数种方式
    >> x(00021) 区隔起始值0增量值002终止值1
    >> xlinspace(0151) 利linspace区隔起始值0终止值1间元素数目51
    >> x(00011)*pi 注意数组外作运算
    >> a15 b129 二种方式更直接
    a
    1 2 3 4 5
    b
    1 3 5 7 9
    >> c[b a] 利先前建立数组 a 数组 b 组成新数组
    c
    1 3 5 7 9 1 2 3 4 5
    >> d[b(125) 1 0 1] 数组 b 三元素加三元素组成
    d
    1 5 9 1 0 1

    18 数组运算
    数组运算符号意义列出加减符号外余数组运算符号均须加 符号
    数组运算功 功

    + 加

    *

    ^ 次方
    ' 转置
    >> a15 a2 数组a减2
    ans
    1 0 1 2 3
    >> 2*a1 2数组a减1
    ans
    1 3 5 7 9
    >> b129 a+b 数组a加数组b
    ans
    2 5 8 11 14
    >> a*b 数组ab中元素元素相
    ans
    1 6 15 28 45
    >> ab 数组ab中元素元素相
    ans
    10000 066667 06000 05714 05556
    >> a^2 数组中元素作二次方
    ans
    1 4 9 16 25
    >> 2^a 2底数组中元素次方
    ans
    2 4 8 16 32
    >> b^a 数组b中元素底数组a中元素次方
    ans
    1 9 125 2401 59049
    >> ba' 数组b数组a转置结果
    b
    1
    2
    3
    4
    5

    19 特殊矩阵
    然矩阵运算等第五章详细说明特矩阵定义元素皆0 1单位矩阵 运算时常会先介绍 zeros函数形成元素皆0 矩阵ones函数形成元素皆 1 矩阵 eye产生单位矩阵称eye取发音原单位矩阵符号I相避免定义复数中虚 部符号i雷改eye代述三函数语法相似zeros(m)产生m×m正方 矩阵zeros(mn)产生m×n矩阵恶三函数m×n矩阵原元素全部取代成0 1 单位矩阵值加size指令指出矩阵mn语法zeros(size(A))中A原矩阵
    >> Azero(2) 0 矩阵
    A
    0 0
    0 0
    >> Bzeros(23)
    B
    0 0 0
    0 0 0
    >> C[1 2 3 4 5 6]
    >> size(C) size 指令C矩阵
    ans
    3 2
    >> Dzeros(size(C)) 加size指令矩阵C 原元素全部 0 取代
    >> Aones(2) Bones(23) 1 矩阵
    A
    1 1
    1 1
    B
    1 1 1
    1 1 1
    >> C[1 2 3 4 5 6]
    >> Dones(size(C))
    >> Aeye(2) Beye(23) 单位矩阵
    A
    1 0
    0 1
    B
    1 0 0
    0 1 0
    >> C[1 2 3 4 5 6]
    >> Deye(size(C))

    110 数组运算特色
    MATLAB 许运算皆数组象数组元素象+ 二运算外余运算符号(次方)皆须加强调数组间运算例子说明 数组运算特色果ab代表二数组ab 间运算元素元素方式例
    例子:
    >> x 15 x 纯量
    >> y exp(x^2) exp(x^2) 纯量运算
    >> y1 xy xy 纯量运算
    >> x 1012 x 数组
    >> y exp(x^2) exp(x^2) 数组运算
    >> y1 xy xy 数组运算
    例子算式较长样须注意纯量数组运算差
    >> x20 x 纯量
    >> nume x^3 2*x^2 + x 63
    >> deno x^2 + 005*x 314
    >> f numedeno
    >> x15 注意 x 数组
    >> nume x^3 2*x^2 + x 63
    >> deno x^2 + 005*x 314
    >> f numedeno

    111 简易绘图
    MATLAB 绘图功强先简单二维绘图指令plot介绍起plot划函数x函数y二维图例划 出 y sin (x) 0 x 2πplot图划数条曲线符号颜色标示曲线指令见线 说明help plotxy轴全图加注说明利指令xlabel ylabel title指令见线说明help xlabel help ylabel help title三维图指令plot3指令见线说明help plot3外二维图三维图皆指令grid 加格线MATLAB会绘图结果展示视窗称MATLAB Figure Windows果视窗 担心盖住进入Windows选择Figure接著例子
    >> v1linspace(02*pi20) v2sin(v1) 建立 v1 v2 数组
    >> plot(v1v2) 利 plot输入变量 x 轴接著变量 y 轴
    >> v3cos(v1) 建立 v3 数组
    >> plot(v1v2v1v3) 划二条曲线条代表 v1v2 函数关系
    条代表 v1v2 v1v3 函数关系

    >> plot(v1v2v1v2'+') 样划二条曲线第二条曲线符号 + 标示
    >> plot(v1v2v1v2*v3'') 划二条曲线条代表 v1v2 函数关系条
    代表 v1(v2*v3) 函数关系符号'标示
    >> xlabel('xaxis') 加 x 轴说明二单引号 ' 间键入文字说明
    >> ylabel('yaxis') 加 y 轴说明
    >> title('2D plot') 加图说明
    >> plot3(v2v3v1) grid on v2v1v3 函数关系分x轴y轴z轴划加格线

    112 交谈式输入
    已讲算式:计算面积 Area利指令input萤幕印出提示文字做交谈式输入
    >> r input('Type radius') 两单引号 ' 间键入提示文字
    Type radius 现键入 2 做半径值
    r
    2
    >> areapi*r^2 键入面积算式
    >> name input('Your name please ''s') 键入文字须加's's 代表字串(string)
    Your name please 键入名字 JC Wu
    name
    JC Wu

    113 输出格式
    输出二种格式:格式 (disp) 格式化输出 (fprintf)直接输出文字数值disp例
    >> temp20
    >> disp(temp) disp('degrees C') disp('度 C') 中文接受呢
    20
    degrees C
    度 C
    指令fprintf控制输出数文字格式基格式
    >> fprintf('The area is 85f\n' area)
    二单引号间包括输出字串The area is接著输出数格式85f跳行符号避免输出 数提示符号挤行键入输出数名area例
    >> fprintf('The area is 85f\n' area) 注意输出格式前须符号跳行符号须\符号
    The area is 1256637 输出值8位数含5位数
    稍加说明输出数格式例子说明型态输出格式
    >> fprintf('f_form 125f\n'123452) 输出值12位数含5位数
    f_form 1234520000
    >> fprintf('f_form 123f\n'123452) 输出值12位数含3位数
    f_form 1235
    >> fprintf('e_form 125e\n'123452) 输出值指数格式12位数含5位数
    e_form 123452e+004
    >> fprintf('f_form 120f\n'123452) 输出值整数格式12位数
    f_form 12345

    114 撰写 MATLAB 程序
    前面节介绍MATLAB做运算适合计算算式太长想交谈式方式做运算 果计算算式长数十行须执行算式样方式行通MATLAB提供谓 Mfile 方式者行指令算式写成巨集程序然储存成特档案附加档m譬 testm中test档案名称撰写程序种编辑软体( Win31记事Dos PE2)文书处理软体( Word AmiPro)储存格式必须 Ascii 格式指令视窗中功菜单 选择File 选择New进入指定编辑软体文书处理软体程序写完存档时必须m 档名称储存执行 Mfile 指令视窗直接键入该档名test选择功表Run Mfile找 Mfile 目录执行MfileOpen Mfile Run Mfile果修改 Mfile 选择功表Open Mfile 搜寻修改 Mfile修改存档
    tutex1m档简易绘图程序做示范Mfile
    Mfile tutex1m
    Simple plot for illustration of using Mfile
    简易绘图做示范Mfile
    xlinspace(02*pi20) ysin(x)
    plot(xy'r+')
    xlabel('xvalue')
    ylabel('yvalue')
    title('2D plot')
    写述程序指令视窗键入tutex1执行已建立tutex1m 程序
    Mfile tutex2m 例子
    Mfile tutex2m
    计算球体积
    r input('Type radius')
    areapi*r^2
    volume(43)*pi*r^3
    fprintf('The radius is 125f\n'r)
    fprintf('The area of a circle is 125f\n'area)
    fprintf('The volume of a sphere is 125f\n'volume)

    115 者定函数
    Mfile 撰写程序外重途定义函数样函数称M档定义函数 然储存起建函数(sin coslog等)样举例说定义函 数cirarea计算圆面积 Mfile ciraream定义函数
    Mfile function ciraream
    Calculate the area of a circle with raduis r
    r can be a scalar or an array
    function ccirarea(r)
    cpi*r^2
    令例子MATLAB建函数linspace
    function y linspace(d1 d2 n)
    LINSPACE Linearly spaced vector
    LINSPACE(x1 x2) generates a row vector of 100 linearly
    equally spaced points between x1 and x2
    LINSPACE(x1 x2 N) generates N points between x1 and x2

    See also LOGSPACE
    Copyright (c) 198494 by The MathWorks Inc
    if nargin 2
    n 100
    end
    y [d1+(0n2)*(d2d1)(n1) d2]
    Mfile定义函数语法规定:
    1 第行指令function字做起头接著输出变量等号函数名称输入变量接著函数名 称放括号function out1userfun(in1)行out1输出变量userfun函数名称in1输入 变量function [out1 out2] serfun(in1 in2) 果输出变量 [out1out2] 输入变量 (in1 in2)时 输出变量部份须加 [ ]
    2 述输入变量函数时输入输出变量函数传回值
    3 函数名称取法规定般变量相
    4 定义函数程序前加注解行说明函数特色话指令help cirarea该函数注解行会出现指令视窗
    >> r13
    >> arcirarea(r) 呼 ciraream 函数数组 r 输入变量
    ar
    31416 125664 282743
    >> disp(ar) 指令 disp 变量值直接列出
    31416 125664 282743

    116 目录执行程序
    执行Mfile时Mfile储存工作目录放MATLAB建目录 样做处会干扰 MATLAB 程序目录档案工作目录执行程序分二步 骤:(1)建立搜寻路径(2) 切换目录
    (1) 建立搜寻路径
    MATLAB 许建函数分门类放次目录工作时须序搜寻次目录 程称「搜寻路径」MATLAB指令path工作目录加原 MATLAB 搜寻路径前
    >> path(path'c\wufile\my_work') 目录 \wufile\my_work 加
    MATLAB搜寻路径
    >> path('c\wufile\my_work'path) 目录 \wufile\my_work 加
    MATLAB搜寻路径前
    果想次进入MATLAB键入path指令面方式path指令设动启定义 特Mfile称startupm容存 MATLAB 目录样次MATLAB启动时会动执 行startupm档述行设定path作相
    (2) 切换目录
    设搜寻路径接著cd指令目录切换工作目录安安心心MATLAB 范例说明切换目录相关指令:
    >> cd \wufile\my_work 切换目录\wufile\my_work
    >> cd 果 cd 会显示目前目录
    c\WUFILE\MY_WORK
    >> dir 列出目录档案
    tutex1m tutex2m
    testtxt
    >> delete testtxt 删 testtxt

    117 储存读取数
    MATLAB程中免希运算程中某数「储存」起便次「读取」利 「储存」「读取」指令分saveloadsave数型态分:(1)双位元格式 (binary format) MATfile(2) ASCII 格式 ASCIIfileMATfile 双位元字元储存电脑读出入(inputoutput) 速率加 快格式testmat(test档名)MATLAB档案型态预设MATfileASCIIfile辨识字元 储存会降低电脑读出入速率格式testdat(test档名)果数MATLAB中产生 MATfileASCIIfile必须数档MATLAB应软体读取时
    外注意save成MAT档储存变量身非直接储存变量数save成ASCII档直接储存变量数值
    二者储存差异造成读取MAT档ASCII档数详见范例
    须注意储存读取数时MATfileASCIIfile档矩阵型态否读取时困难数 储存成矩阵m×n中m列数目n行数目
    save load范例
    >> x15 y1115 先产生二列数组 (row array} x y
    >> save data1 x y xy 二变量数值存入 data1 MATfile
    data1实data1matdata1mat 容变量x y非(15 1115) 数
    >> save data2dat x y ascii 果data1改ASCII格式储存须加ascii
    选项data2dat 容(15 1115) 数
    >> type data2dat type 指令 data2dat 容列出
    >> load data1 读取 data1mat 档
    >> x y 出 data1mat中变量读取容(15 1115)
    >> load data2dat 读取 data2dat 档
    >> x2data2(1) y2data2(2) data2中第第二列数分x2y2
    变量读入运算中二列数
    >> x2125 y3135
    >> save data3dat x y ascii
    >> load data3dat
    >> x3data3(1) y3data3(2) data3中第第二列数分x3y3 变量读入
    运算中二列数
    >> A[1 2 3 4 5 6]
    >> save data4dat A ascii A数组数值存入data4ASCIIfile
    >> load data4dat
    >> x4data4(1) 令 x4 data4 第行数
    >> y4data4(2) 令 y4 data4 第二行数
    >> z4data4(3) 令 z4 data4 第三行数

    118 绘图功
    前面少说明简易二维绘图功例图加注说明指令title xlabelylabel外 二指令 text gtext 图中加文字说明图中曲线图形代表什text绘图座标放置 文字说明语法text(xy 'string')x y放置说明座标值string说明文字gtext滑鼠左右光标键放置文字说明语法 gtext('string') 例子:
    >> xlinspace(02*pi30) ysin(x) zcos(x)
    >> plot(xyxz) 划二条曲线 ysin(x) zcos(x)
    >> text(2507'sin(x)') (2507)绘图座标值
    >> gtext('cos(x)') 滑鼠移适位置滑鼠键
    般 xy 图横轴轴皆线性尺度绘图果绘图数 x y 值变化范围太须改 数 (log) 尺度绘图合理图MATLAB 提供三种数尺度绘图指令:semilogxsemilogy loglog 作分x轴数尺度绘图y 轴数尺度绘图x y 轴数尺度绘图例子 藉说明种场合须数尺度绘图
    >> y00110 x10^y
    >> plot(xy) 会画出出然图
    >> semilogx(xy) 改数尺度绘图清楚
    >> x[0 2 5 7 10 12 15 17 20 21]
    >> y[01 02 05 06 09 1 12 126 122 12]
    >> plot(xy) 先线性尺度绘图分三种数尺度绘
    >> semilogx(xy) 图注意图长会改变
    >> semilogy(xy)
    >> loglog(xy)

    119 关系逻辑运算
    执行关系逻辑运算时MATLAB 输入零数值视真 (True)零数值视否 (False) 运算输出值判断真者 1 表示判断否者 0 表示MATLAB 提供关系判断逻辑运算 元:
    符号 关系意义
    <
    < 等
    >
    > 等

    ~ 等
    & 逻辑 and
    | 逻辑 or
    ~ 逻辑 not
    述运算元须二相数组矩阵较例子:
    >> a15 b5a
    a
    1 2 3 4 5
    b
    4 3 2 1 0
    >> tf a>4
    tf
    0 0 0 0 1
    >> tf ab
    tf
    0 0 0 0 0
    >> tf b(a>2)
    tf
    4 3 1 0 1
    >> tf ~(a>4)
    tf
    1 1 1 1 0
    >> tf (a>2)&(a<6)
    tf
    0 0 1 1 1
    算式利关系逻辑运算产生连续讯号
    >> xlinspace(010100) 产生数
    >> ysin(x) 产生 sine 函数
    >> z(y>0)*y sin(x) 负值设零
    >> zz + 05*(y<0) 式值加05
    >> z(x<8)*z x8 值设零
    >> hold on
    >> plot(xz)
    >> xlabel('x')ylabel('zf(x)')
    >> title('A discontinuous signal')
    >> hold off
    述运算元外尚逻辑关系函数:xor(xy) any(x) all(x) isnan(x) isinf(x) finite(x) find(x) 方式详见线说明

    120 选择指令
    MATLABif指令:
    if (逻辑运算式…)
    (true语句…)
    else
    (false 语句…)
    end
    中elseif 进行分支选择(注意elseif间没空格)
    switch语句根变量表达式值执行特定语句:
    switch 表达式0
    case 表达式1值
    命令行1
    case 表达式2值
    命令行2
    ……
    otherwise
    命令行n
    end


    121 For 循环
    for 循环须重复执行执行次数定算式结构:
    for index array
    command A
    end

    果计算缆车离铁塔速度 (v)速度计算方式铁塔距离 (d)关假设 10 公尺判断值速度计算分二算式:



    假设数组 d 缆车铁塔距离for 循环计算速应速度
    >> for k 1length(d)
    if d(k) < 10
    velocity 0425 + 000175*d(k)^2
    else
    velocity 0625 + 012*d 000025*d(k)^2
    end
    fprintf('d f velocity f\n'd(k)velocity)
    end
    外例子
    >> for n110
    x(n)sin(n*pi10)
    end
    >> disp(x)
    >> for n15
    for m511
    A(nm)n^2+m^2
    end
    disp(n)
    end
    >> disp(A)
    果数组矩阵运算取代for 循环计算应采前者计算速度快述例子 改
    >> n110
    >> xsin(n*pi10)
    for 循环规:
    1 述 for 循环中指标 (index) 须变量
    2 果 array 代表数组空物循环会执行例 k10
    3 果 array 代表数组纯量循环会执行次例 k11
    4 果 array 代表数组量循环会序执行例 k1b b[1 3 5]
    5 果 array 代表数组矩阵循环会逐行序执行例 k1B B[1 2 3 4]
    6 for 完整语法: for k firstincrementlast中 first increment last分初始值增量终止值循环执行次数算式决定:
    floor((lastfirst)increment)+1
    果计算值负循环执行

    122 While 循环
    While 语句满足定条件循环语法结构:
    while expression 
    command group A 
    end 


    sum 0 
    k 1 
    while x(k) > 0 & k < length(k) 
    sum sum + x(k) 
    k k+1 
    end 
    外利break命令跳出forwhile循环例计算MATLAB计算正值:
    >> num0 EPS1
    >> for num11000
    EPSEPS2
    if (1+EPS) < 1
    break
    end 
    end 
    >> EPS num 
    >> EPS  
    11102e016 
    >> num  
    53

    123 break continue return 语句
    break语句终止前循环continue语句终止次循环继续次循环return语句终止次函数调终止键盘输入模式

    124 复数
    说明复数运算先解二次方程组复数根谈起式根实部 (2) 虚部 (±3)复数表示法说明 MATLAB复数功MATLAB ij字元代表虚部复数相关函数real imag conj abs angle等等详见线说明lookfor complex果复数表示 xa+bi
    轭复数 复数r 复数量夹角 θ tan1 (ba)
    复数实部a r cosθ 复数虚部b r sinθ 复数指数表示法 xr ei
    述函数应MATLAB复数指令
    areal(x) bimag(x) conj(x) rabs(x) angle(x) xr*exp(i*angle(x))
    复数表示式例子:
    >> x12*i 注意 2*i 2i
    >> real(x) 列出实部
    ans
    1
    >> imag(x) 列出虚部
    ans
    2
    >> conj(x) 计算轭复数
    ans
    10000 + 20000i
    >> abs(x) 计算复数
    ans
    22361
    >> angle(x) 计算复数量夹角(径度表示)
    ans
    11071
    >> a1 b4 c13
    >> x1(b+sqrt(b^24*a*c))(2*a) 解二次方程组根公式计算复数根
    x1
    20000 + 30000i
    >> x2(bsqrt(b^24*a*c))(2*a)
    x2
    20000 30000i
    >> yexp(i) 复数指数方式表示复数
    y
    05403 + 08415i
    >> yexp(i*pi*075)
    y
    07071 + 07071i
    复数关图极座标表示会般卡氏座标合适polar指令数极座标方式加绘图 语法 polar(thetar)(thetar)分代表极座标角度半径值例子说明 polar法:
    >> t00012*pi
    >> rsin(2*t)*cos(2*t)
    >> polar(tr)
    >> title('Polar plot of sin(2t)cos(2t)')
    >> angle02*pi1002*pi
    >> rangle(2*pi)
    >> polar(angler)
    >> title('Polar plot')
    >> grid on








    第二章 进阶绘图功

    21 绘图选项
    MATLAB 许绘图选项做介绍果二条曲线划图参考例子:
    >> xlinspace(02*pi30)
    >> ysin(x) zcos(x)
    >> plot(xy'g'xz'r') 加颜色符号区二条曲线
    plot许绘图控制选项参考plot线说明

    211 横轴轴控制
    控制绘图横轴轴例 axis配合列相关选项:
    axis([xmin xmax ymin ymax])
    xmin xmax 设定横轴限限 ymin ymax 设定轴限限
    axis auto
    横轴轴数限订定横轴轴例43
    axis square
    横轴轴例 11
    axis equal
    横轴轴尺度例设成相值
    axis xy
    预设值卡氏座标图原点设左角横轴左右增轴递增
    axis ij
    矩阵格式图原点设左角横轴变轴递增
    axis normal
    预设值画轴横轴
    axis off
    轴横轴取消
    axis on
    恢复轴横轴
    述指令语法关键字放括弧单引号间axis(' ')
    应 axis范例:
    >> xlinspace(02*pi30) ysin(x) zcos(x)
    >> plot(xyxz)
    >> axis off
    >> axis on
    >> axis('square''equal')

    212 子图
    数相关图画页时subplot指令语法 subplot(mnp)中 m n代表绘图成 m x n 子图m表示 y方 m 图 n表示 x 方 n 图p 代表第子图例 subplot分画 出线性数尺度四子图:
    >> x[0 2 5 7 10 12 15 17 20 21]
    >> y[01 02 05 06 09 1 12 126 122 12]
    >> subplot(221) plot(xy) 画左角图
    >> subplot(222) semilogx(xy) 画右角图
    >> subplot(223) semilogy(xy) 画左角图
    >> subplot(224) loglog(xy) 画右角图



















    213 图形放缩
    zoom 指令图形放缩图形放时 zoom onzoom out须放缩图形时 zoom off
    >> Mpeaks(25) peaks MATLAB建山峰特函数25
    >> plot(M) 函数矩阵果数值愈画出山峰图愈滑
    >> zoom on 开始放图形次Enter键图形放次
    >> zoom out 开始缩图形次Enter键图形缩次
    >> zoom off 停止图形放缩功

    214 函数分布快速绘图
    fplot指令动画已定义函数分布图须产生绘图须组数做变量语法 fplot('fun'[xmin xmax ymin ymax])中 fun已定义函数名称例 sin cos等等 xmin xmax ymin ymax 设定绘图横轴轴限限例子函数 f(x)sin(x)x20 x 2004 y 12间画 出:
    >> fplot('sin(x)x'[20 20 04 12])
    >> title('Fplot of f(x)sin(x)x')
    >> xlabel('x') ylabel('f(x)')

    215 印功
    MATLAB 指令print二功直接画图印画图指定图档格式储存起 前者画印者先图画储存起事图形档案指定方式印 档案整合果前者直接绘图视窗中印菜单指令针者方式基语 法print[filename][device][options]中 [ ]代表附加选项果指令print表示印现绘图视窗 图果 print filename表示现绘图视窗图存成filename附档名预设印表机种类 图档格式印表机种类设定device决定分项说明
    MATLAB 直接支援印表机种类
    device
    说明
    dps
    黑白描页式 (PostScript) 印表机附档名 ps
    dps2
    黑白第二代描页式 (PostScript II) 印表机附档名 ps
    deps
    黑白描页式 (Encapsulated PostScript) 印表机附档名 eps
    deps2
    黑白第二代描页式 (Encapsulated PostScript II) 印表机附档名 eps
    实 MATLAB 支援彩色描页式印表机类印表机太昂贵般太会做 介绍参考手册线说明介绍
    透 Ghostscript 印表机模拟软体支援印表机描页式图形档转成列印表机格式 项功UNIXPC完整版PC 学生版MATLAB没功Ghostscript软体 许国FTP载例
    中央学FTP站
    Win31版 ftpftpncuedutwPCwin3printgs403*zip (5zip档)
    Win95版 ftpftpncuedutwPCwin95simtelnetprintgs403*zip (5zip档)
    device
    说明
    dcdjcolor
    24 bits 全彩 HP DeskJet 500C
    depson
    Epson 点矩阵式印表机
    dgif8
    8 bits 彩色 GIF 图档附档名 gif
    dpcx256
    256 色彩色 PCX 图档附档名 pcx
    例子图存成三种图形格式:
    >> print fig1 dps 图存成PostScript格式图档fig1ps
    >> print fig1 dgif8 图存成GIF格式图档fig1gif
    >> print fig1 pcx256 图存成256色PCX格式图档fig1pcx
    [option] 选项半绘图视窗印功代做说明

    216 功
    果须画图中曲线某处加符号意放置符号指令ginput方式 容许滑鼠左右游标萤幕输入加符号座标面例子8峰顶峰谷 函数分布图( y sin (x) x )滑鼠方式符号加峰值藉突显极值语法 [xy]ginput(n)
    >> xlinspace(2*pi2*pi60)
    >> ysin(x)^2(x+eps) 注意加eps避免x趋零时y会法定义
    >> plot(xy)
    >> [ab]ginput(8) 序萤幕输入8点座标
    >> hold on
    >> plot(ab'co') 输入座标值符号画图适位置
    >> hold off

    22 三维绘图
    221 三维曲线绘图
    plot3 画三维曲线格式类似 plot z方数法 plot3(XYZ) plot3(XYZ'linetype')中 linetype设定画线符号颜色面例子说明三维曲线图:
    >> t0pi5010*pi
    >> plot3(sin(t)cos(t)t)
    >> title('Helix') xlabel('sin(t)' ylabel('cos(t)') zlabel('t')
    >> axis('ij') 加指令注意图y轴曲线方改变

    222 曲面等值线绘图
    果画三维曲面MATLABmeshgrid配合meshsurf指令绘图先meshgrid产生xy面 二维网格数组z轴数应二维网格画出三维曲面例子说明 述绘图程
    >> x750575 yx 先产生xy二数组
    >> [XY]meshgrid(xy) meshgrid形成二维网格数
    >> Rsqrt(X^2+Y^2)+eps 加eps避免R分母时趋零时会法定义
    >> Zsin(R)R 产生z轴数
    >> mesh(XYZ) z轴变化值网格方式画出
    >> surf(XYZ) z轴变化值曲面方式画出
    >> mesh(peaks) 直接定义peaks函数网格方式画出
    >> title('Mesh plot of peaks')























    三维绘图关等值线图相关指令contourcontour3contour等值线图二维图表示语法 方式contour(Z)contour(Zn)中Z二维矩阵 n等值线数目(果动方式 设定)种语法z轴值应指定xy轴值语法contour(XYZ)contour(XYZn)中XY Z代表xyz轴数contour3等值线三维图表示语法contour类似应关键字contour 改成contour3余部份相
    例子较contour contour3图示:
    >> [XYZ]peaks xyz轴数peaks函数定义
    >> subplot(221)
    >> contour(Z20) 画出peaksZ轴二维等值线图20等值线数目
    >> subplot(222)
    >> contour(XYZ20) 画出peaks二维等值线图注意xy轴图
    >> subplot(223)
    >> contour3(Z20) 画出peaksZ轴二维等值线图
    >> subplot(224)
    >> contour3(XYZ20) 画出peaks三维等值线图注意xy轴图


    第三章MATLAB函数

    31 三角双曲线函数
    三角函数双曲线函数般数学式相似语法直接易懂例三角函数:sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) atan2(yx)常双曲线函数:sinh(x) cosh(x) tanh(x) asinh(x) acosh(x) atanh(x)述函数法请参考MATLAB线说明手册

    32 项式函数
    工程科学分析项式常模拟物理现象解析函数第九章介绍「曲线拟合」 方面应采项式容易计算章中说明做项式计 算解项式根
    令p(x) 代表项式 MATLAB 简便方式代表述项式 p[1 4 7 10]中数值项式阶项(高低) 系数实p 数组代表项式
    项式表示式计算函数值假设计算组数x应项式值般函数 计算须列式子计算:
    >> px^3+4*x^27*x10
    直接运项式函数 polyval直接做运算语法 polyval(px)中p 代表项式阶系数 数组
    >> xlinspace(13)
    >> p[1 4 7 10]
    >> vpolyval(px)
    接著说明二项式做加减运算项式微分二项式间做加减时加 减运算直接进行假设二项式 定义 果项式 述二项式相加
    果二项式相减项式

    两项式相新项式:
    果两项式相:
    述二运算式直接运算须外定义函数conv做法运算函数deconv做法运算二项式 相数学等二数组做旋积(convolution)运算(数组代表项式阶系数) 利conv函数做法运算语法conv(ab)中a b代表二项式数组二项式相相 反旋积(deconvolution) 运算 deconv 函数语法稍 [qr]deconv(ab)中qr分代表整 项式余数项式
    介绍相关范例说明二项式加减运算:
    >> a[1 2 3 4] b[1 4 9 16]
    >> ca+b
    c
    2 6 12 20
    >> dab
    d
    0 2 6 12
    >> econv(ab)
    e
    1 6 20 50 75 84 64
    >> ge+[0 0 0 c]
    g
    1 6 20 52 81 96 84
    >> [fr]deconv(eb)
    f
    1 2 3 4
    r
    0 0 0 0 0 0 0 整余数项式系数皆零
    >> [hr]deconv(ga)
    f
    1 4 9 18
    r
    0 0 0 0 2 6 12 余数项式 2*x^2 + 6*x + 12
    项式视阶数定根数实数复数求高阶项式根 须助数值方法幸MATLAB已数值方法写成函数roots(p)输入项式阶系 数(p代表)求解应根
    >> p[1 3 2]
    >> rroots(p)
    r
    2
    1
    >> p[1 12 0 25 116] 注意二阶项系数零须输入否项式阶数
    >> rroots(p) 实数根复数根
    r
    117473
    27028
    12251 + 14672i
    12251 14672i
    roots 相关函数尚 poly real二函数途验算求解根展开求原项式 例二次方程组根 2 1式计算原项式
    poly函数求出项式阶系数语法 poly(r)中 r 代表根数组 real计算时产生假虚部系数会种情形请参考例子
    >> r[2 1]
    >> pppoly(r) pp(x+2)(x+1)x^2+3x+2
    pp
    1 3 2
    >> p[1 4 6 4]
    >> rroots(p)
    r
    20000 10000 + 10000i 10000 10000i
    >> pppoly(r) 项式系数原项式 p 相
    pp
    1 4 6 4
    >> pp[1 7 12 9] 项式
    >> rroots(pp)
    r
    49395
    10303 + 08721i
    10303 08721i
    >> pppoly(r) 注意计算误差会假虚部产生
    pp
    10000 70000 120000 90000 + 00000i
    >> ppreal(pp) real假虚部原项式原
    pp
    10000 70000 120000 90000

    33 极值均总连排序
    首先介绍分析函数利函数分析数极方便函数:值max 值min均值 mean组数中位数median总值sum连值prod累积总值cumsum 累积连值cumprod排序函数sort方式
    max(x) 找出x数组值
    max(xy) 找出xy数组值会二极值分属xy数组
    [yi]max(x) 找出x数组值y显示x数组位置i显示
    min(x) 找出x数组值
    min(xy) 找出xy数组值会二极值分属xy数组
    [yi]min(x) 找出x数组值y显示x数组位置i显示
    mean(x) 找出x数组均值
    median(x) 找出x数组中位数
    sum(x) 计算x数组总值
    prod(x) 计算x数组连值
    cumsum(x) 计算x数组累积总值
    cumprod(x) 计算x数组累积连值
    例子:
    >> rains rains2x1数组
    rains
    1268 1485 1730 1484 1947 2089
    3288 3007 2683 2105 2784 3215
    >> avg_rainmean(rains) rains数组中行均值列出
    avg_rain
    2278000 2246000 2206500 1794500 2365500 2652000
    >> avg_rainmean(avg_rain) 述数组中均值列出
    avg_rain
    2257083
    >> max_rainmax(rains) rains数组中行值列出
    max_rain
    3288000 3007000 2683000 2105000 2784000 3215000
    >> [max_rainx]max(rains) rains数组中行值位置列出
    max_rain
    3288000 3007000 2683000 2105000 2784000 3215000
    x
    2 2 2 2 2 2
    >> min_rainmin(rains) rains数组中行值列出
    min_rain
    1268000 1485000 1730000 1484000 1947000 2089000
    >> s_sortsort(rains) rains数组值做排序
    s_sort
    1268000 1485000 1730000 1484000 1947000 2089000
    3288000 3007000 2683000 2105000 2784000 3215000
    >> x[1 2 3 4 5]
    >> sum(x) x数组值做总
    ans
    15
    >> prod(x) x数组值做连
    ans
    120
    >> cumsum(x) x数组值累积做总
    ans
    1 3 6 10 15
    >> cumprod(x) x数组值累积做连
    ans
    1 2 6 24 120

    34 长条分布函数
    绘图函数数分析关称长条分布函数 (histogram)画出组数范围 分布数中极极值标示横轴(数范围)数出现次数 应该数值(横轴)画轴(数分布例)histogram称长条分布函数长条 表示数分布预设值10长条MATLAB 产生长条分布函数指令 hist例子:
    >> x3013
    >> ysin(x) 注意x径度
    >> hist(y) 画出sin(y)histogram横轴代表y极值[11]轴代表y数
    >> hist(y25) 预设10长条改25注意轴值改变什?
    >> hist(yx) 横轴限改33注意轴值改变什?




















    35 均匀机数
    MATLAB 函数 rand产生区间 [0 1] 均匀机数均分布 [0 1]间称 seed值 控制产生机数次数均匀机数函数语法rand(n) rand(mn)结果分产生矩阵含nxn机数 矩阵含mxn机数注意次产生机数值会样值代表机预期正 机数目利机数代入算式中表示某段讯号规振幅某事件出现 机率均匀机数值均分布区间特性统计密度函数(probability density function PDF) 说明 PDF分布 类似长条图分布 出机数值出现机率皆相称均匀机数
    见例子:
    >> rand(16) 第次机数产生器
    ans
    02190 00470 06789 06793 09347 03835
    >>hist(ans) 长条图长相
    >>plot(ans) 较图图差异?者代表规数分布
    >> rand(16) 第二次机数产生器注意次产生机数值皆
    ans
    05194 08310 00346 00535 05297 06711
    次机数产生值皆果验证算式需确定机数值相利seed 选项设定计算机数产生器起始值语法rand('seed'n)n规定中n0特意 义第次产生机数值起始值(931316785)n值起始值果相起始 值机数值会样机数计算起始值请例子:
    >> rand('seed'0) 机数值起始值重设相第次产生机数值
    >>rand('seed') 显示现 seed 值931316785
    ans
    931316785
    >> rand(23) 注意机数值限介 [01] 区间
    ans
    02190 06789 09347
    00470 06793 03835
    >> rand('seed') 显示产生机数值seed412659990
    ans
    412659990
    >> rand('seed'0)
    >> rand(16)
    ans
    02190 00470 06789 06793 09347 03835
    >> rand('seed'100) 设定机数值起始值100
    >> rand('seed')
    ans
    100
    >> rand(25)
    ans
    02909 00395 03671 05968 09253
    00484 05046 09235 08085 03628
    果需产生机数值介[01]区间采步骤机数值[01]区间转换区间假设 组机数值介[24]区间先产生组机数 介[01]区间 值22等区 间限差值(42)接著加限值 (2)机数值介[24]区间例区间[ab]a 限值b限值算式
    x(ba)*r + a
    中x代表转换机数值数组请列示范:
    >>data_1 2*rand(1500)+2 原机数值500
    >>plot(data_1) 图否眼熟?
    >>axis([1 500 0 6]) 调整横轴轴限
    >>hist(data_1) 长条图

    36 常态机数
    MATLAB 函数 randn产生常态机数高斯分布机数出现限区间常态机数值分布区间特性 统计密度函数(PDF) 说明 PDF 分布出机数值出现机率皆相中间乱 数值出现机率起两端值高般规现象较出现情形称常态机数 常态机数非限定义数均值变异数定义产生常态机数时需设 定均值变异数randn(n)randn(nm) 分产生矩阵含 nxn机数矩阵含mxn常态机数 均值0变异数1
    见例子:
    >> x290229 例子 hist 函数画出二种机数分布图
    >> yrandn(15000)
    >> hist(yx)
    >> title('Histogram of Normal Random Data')
    >> y1rand(15000)
    >> hist(y1x)
    >> title('Histogram of Uniform Random Data')
    果需产生常态机数值均值变异数非01采步骤均值变异数做转换假设 组常态机数值均值b变异数a先产生组机数r值变异数a接著加 均值b算式
    xa*r + b
    中x代表转换机数值数组请列示范:
    >>data_2 randn(1500)+3 原机数值500
    >>plot(data_2) 图否眼熟?
    >>axis([1 500 0 6])
    >>hist(data_2) 长条图

    37 矩阵运算函数
    先介绍矩阵转角关函数:rot90 fliplr flipud法说明请参考例子
    >> A[2 1 0 2 5 1 3 4 6]
    >> Brot90(A) A矩阵逆时针转90度
    B
    0 1 6
    1 5 4
    2 2 3
    >> A[1 2 4 8 2 0]
    >> Bfliplr(A) A矩阵左右翻
    >> Cflipud(A) A矩阵翻
    >> B C
    B
    2 1
    8 4
    0 2
    C
    2 0
    4 8
    1 2
    外函数 reshape 调整矩阵改形矩阵元素总数变改变列行见范例
    >> A[2 5 6 1 3 2 10 0]
    >> Breshape(A42) A矩阵改成 4x2 矩阵
    >> Creshape(A18) A矩阵改成 8x1 矩阵
    >> B C
    B
    2 6
    3 10
    5 1
    2 0
    C
    2 5
    6 1
    3 2
    10 0
    果矩阵特定元素读取出特定元素值取代函数diag triu tril 提供方面功diag保留原矩阵角线 (main diagonal) 元素余元素零取代triu tril 分产生三角形三角形矩阵余元素零取代例子详细说明三函数法:
    >> V[1 2 3]
    >> Adiag(V)
    A
    1 0 0
    0 2 0
    0 0 3
    >> A[127 3312 411 14]
    A
    1 3 5 7
    3 6 9 12
    4 3 2 1
    1 2 3 4
    >> Btriu(A)
    B
    1 3 5 7
    0 6 9 12
    0 0 2 1
    0 0 0 4
    >> Ctriu(A1)
    C
    1 3 5 7
    3 6 9 12
    0 3 2 1
    0 0 3 4
    >> Dtriu(A3)
    D
    0 0 0 7
    0 0 0 0
    0 0 0 0
    0 0 0 0
    >> Btril(A)
    B
    1 0 0 0
    3 6 0 0
    4 3 2 0
    1 2 3 4
    >> Ctriu(A1)
    C
    0 0 0 0
    3 0 0 0
    4 3 0 0
    1 2 3 0
    >> Dtriu(A3)
    D
    1 3 5 7
    3 6 9 12
    4 3 2 1
    1 2 3 4

    第四章 线形代数矩阵

    41 基矩阵运算元
    第二章已说明 MATLAB 运算数组(array)矩阵 (matrix) 方式做运算二者MATLAB 基运算性质数组强调元素元素运算矩阵采线性代数运算方式说明矩阵运算 特点
    数组矩阵运算符号意义列出
    数组运算符号
    矩阵运算符号

    +
    +




    *
    *







    ^
    ^
    次方


    转置
    利运算符号进行矩阵运算
    >> A[2 5 1 7 3 8 4 5 21 16 13 0]
    >> A' A转置矩阵
    A
    2 7 4 16
    5 3 5 13
    1 8 21 0
    >> A[4 1 3] B[2 5 2]
    >> dot_prod sum(A*B) 二数组做积
    dot_prod
    7
    >> cdot(AB) dot函数做积运算
    c
    7
    >> A[4 1 3]
    >> dot_prod sum(A'*B) 果A行数组先做转置做积
    >> F[2 5 1] G[0 1 3]
    >> out_prodF'*G 二矩阵做外积
    >> A[251 031]
    >> B[102 142 521]
    >> CA*B 矩阵相注意二矩阵须相容
    C
    2 22 5
    8 10 7
    >> A[2 1 4 3]
    >> A^2 矩阵次方
    ans
    4 1
    16 9

    42 矩阵项式
    函数polyvalm矩阵方式做项式函数计算polyval数组方式计算函数值语法 polyvalm(aX)中X矩阵a项式例子说明法
    >> X[1 1 1 2 2 2 3 3 3]
    >> a[1 1 1] 注意aX*X+X+I
    >> fpolyvalm(aX)
    f
    8 7 7
    14 15 14
    21 21 22

    43 反矩阵矩阵秩行列式
    正方矩阵A反矩阵定义二矩阵相结果皆单位矩阵 矩阵果奇异(singular) 条件足 (illconditioned)反矩阵存条件足矩阵组联立方程 组中方程组独立关矩阵秩(rank) 代表矩阵中独立方程组数果矩阵秩数 矩阵列数相等矩阵非奇异反矩阵存
    MATLAB反矩阵函数秩函数语法分inv(A) rank(A):例:
    >> A[2 1 4 3]
    >> rank(A)
    2 表示A秩数2等矩阵列数
    >> inv(A) 反矩阵
    ans
    15000 05000
    20000 10000
    >> B[2 1 3 2 4 5] B奇异矩阵
    >> rank(B)
    ans
    2 表示B秩数2列数3
    >> inv(B)
    Error using > inv
    Matrix must be square
    相信家会计算矩阵行列式值矩阵超4行列式值计算会繁复MATLAB提供 计算行列式函数语法det(A)例:
    >> A[1 3 0 1 5 2 1 2 1]
    >> det(A) 矩阵行列式值
    ans
    10
    沪p算会繁复MATLAB提供 计算行列式函数语法det(A)例:
    >> A[1 3 0 1 5 2 1 2 1]
    >> det(A) 矩阵行列式值
    ans
    10

    44 特徵值特徵量
    假设 A 矩阵 X n列栏量纯量考虑数学式

    果X零元素组成中满足式称矩阵A特徵值(eigenvalue)X称矩阵A特徵量 (eigenvector)特徵量代表正规正交(orthonormal) 量组谓正规正交量指量身做 积值单位量关系指二量相互垂直积值做正规化(normalization)
    式改写

    中 I 单位矩阵

    eigenvalue特徵方程组计算
    述二次方程组求解二根分二值A特徵值A特徵量求法 分特徵值代入例
    特徵值代入特徵量找限量满足述 特徵量例
    唯特徵量正交(orthonormal)特徵量组Q利特性
    求解式应正交特徵量组Q
    述例子中矩阵A简单手做演算矩阵增加MATLAB建函数做运 算轻松相关函数语法eig(A)栏量代表A特徵值[Qd]eig(A)中Q代表A特徵 量d角矩阵元素代表A特徵值
    示范述例子
    >> A [05 025 025 05]
    >> [Qd] eig(A)
    Q
    07071 07071
    07071 07071
    d 注意角线值特徵值
    02500 0
    0 07500
    >> Q*Q' Q*Q'I
    ans
    1 0
    0 1
    >> A*Q(1) 025* Q(1) 验证注意XQ(1) 第特徵量
    ans A*X结果
    01768
    01768
    ans 结果
    01768
    01768

    45 矩阵分解
    矩阵分解 (decomposition factorization)半矩阵拆解数三角形矩阵(triangular matrix)目 分三种矩阵分解法:1)三角分解法 (Triangular Factorization)2)QR 分解法 (QR Factorization)3)奇异值分 解法 (Singular Value Decompostion)
    (1) 三角分解法
    三角分解法原正方 (square) 矩阵分解成三角形矩阵 排列(permuted) 三角形矩阵  三角形矩阵样分解法称LU分解法途简化矩阵行列式值计算程求 反矩阵求解联立方程组注意种分解法三角形矩阵非唯找数 三角形矩阵两三角形矩阵相会原矩阵
    举二矩阵例:
    利三角分解法AB二矩阵分拆解三角形矩阵

    注意B分解矩阵第矩阵[LB]排列三角形矩阵果第二三列互换变成完全 三角形矩阵
    MATLAB函数计算述LU分解法语法[LU]lu(A)中L代表三角形矩阵U代表三角形矩阵 例子
    >> A [1 2 1 2 5 3 1 3 0] B[1 3 2 2 6 1 2 5 7]
    >> [L1U1] lu(A) [L2U2] lu(B)
    >> L1 U1
    L1 注意矩阵L1前[LA]相
    05 1 0
    1 0 0
    05 1 1
    U1 注意矩阵U1前[UA]相
    2 5 3
    0 05 05
    0 0 2
    >> L2 U2
    L2 注意矩阵L2前[LB]相
    05 0 1
    1 0 0
    1 1 0
    U2 注意矩阵U2前[UB]相
    2 6 1
    0 1 8
    0 0 25
    (2) QR分解法
    QR分解法矩阵分解成正规正交矩阵三角形矩阵记先前介绍正规正交矩阵Q满足条件称QR分解法正规正交矩阵通符号Q关
    MATLABqr函数执行QR分解法 语法[QR]qr(A)中Q代表正规正交矩阵R代表三角形矩 阵外原矩阵A必正方矩阵果矩阵A矩阵Q矩阵R
    (3) 奇异值分解法
    奇异值分解 (sigular value decompositionSVD) 种正交矩阵分解法SVD分解法QR 分解法花十倍计算时间[USV]svd(A)中UV代表二相互正交矩阵S代表角矩阵 QR分解法相者 原矩阵A必正方矩阵
    SVD分解法途解方误差法数压缩

    第五章 联立线性方程组


    假设组联立线性方程组

    惯组方程组矩阵方式表示
    AXB
    中 A 等式左边方程组系数项X 欲求解未知项B 代表等式右边已知项
    解述联立方程组利第四章介绍矩阵左 \ 做运算 XA\B
    果原方程组改写成 XAB令 X A B 分

    注意式 X B 已改写成列量A实前方程组中 A 转置矩阵式 X 矩阵右 求解 XBA
    反矩阵运算求解 AXB XB Xinv(A)*B改写成 XAB XB XB*inv(A)
    直接面例子说明三运算法:
    >> A[3 2 1 1 3 2 1 1 1] 等式左边系数键入
    >> B[10 5 1]' 等式右边已知项键入B做转置
    >> XA\B 先左运算求解
    X 注意X行量
    2
    5
    6
    >> CA*X 验算解否正确
    C CB
    10
    5
    1
    >> AA' A先做转置
    >> B[10 5 1]
    >> XBA 右运算求解结果
    X 注意X列量
    10 5 1
    >> XB*inv(A) 反矩阵运算求解

    第六章 插曲线拟合

    61 插
    假设组已知数型态

    假设某点属述果估计点函数值须做插 (interpolation)视原数描述函数复杂程度选择数值插方法

    611 维插
    线性插假设二已知数中变化线性关系已知二点座标(a b)计算通二点 斜线公式右:
    中 a线性插简单插方法适范围果原数函数f极变化假设数点 间线性变化合理二次三次方程组种称spline函数似原数函 数MATLAB维插函数interp1语法interp1(xyxi)interp1(xyxi'method')中xy原已知 数xy值xi插数点外method设定插方法 linearcubicspline分次三 次方程组spline函数中预设方法linear果数变化较 spline函数插形成曲线滑 效果三次方程组插曲线滑度介线性spline函数间
    面例子说明假设汽车引擎定转速温度时间(单位sec)三次量测值
    time
    temp1
    temp2
    temp3
    0
    0
    0
    0
    1
    20
    110
    176
    2
    60
    180
    220
    3
    68
    240
    349
    4
    77
    310
    450
    5
    110
    405
    503
    中温度数 20oC变化 503oC果估计t26 49 sec 温度列指令计算
    >> x[0 1 2 3 4 5]' 键入时间
    >> y[0 20 60 68 77 110]' 键入第组时间
    >> y1interp1(xy26) 插数点 26
    y1 应 26 函数值 648
    648
    >> y1interp1(xy[26 49]) 插数点 26 49注意[ ]插点放中
    y1
    648
    1067
    >> y1interp1(xy26'cubic') 三次方程组数点 26 作插
    y1 应 26 函数值 66264
    66264
    >> y1interp1(xy26'spline') spline函数数点 26 作插
    y1 应 26 函数值 66368
    66368
    例子配合绘图功较插方法差异
    >> h112
    >> temp[5 8 9 15 25 29 31 30 22 25 27 24] 组温度数变化较
    >> plot(htemp''htemp'+') 线性插结果绘图
    >> h_310112 01时估计次温度值
    >> t_3interp1(htemph_3'cubic') 三次方程组做插
    >> t_sinterp1(htemph_3'spline') spline函数做插
    >> hold on
    >> subplot(121)
    >> plot(htemp''htemp'+'h_3t_3) 线性三次方程组插绘图
    >> subplot(122)
    >> plot(htemp''htemp'+'h_3t_s) 线性方程组spline插绘图
    >> hold off

    612 二维插
    二维插维插区二维插数二维语法结构interp2(XYZXIYI)中XYZ已知数ZZ(XY)XIYI 插值数点果语法结构interp2(XYZXIYI'method')中methodlinearcubic表示线形三次方插值例说明
    假设汽车转速(单位rpm)温度(单位:oC)时间(单位:sec)表:
    time 
    speed 

    2000 rpm 
    3000 rpm 
    4000 rpm 

    20 
    110 
    176 

    60 
    180 
    220 

    68 
    240 
    349 

    77 
    310 
    450 

    110 
    405 
    503 
    中温度数20oC503oC果估计t26 sec rpm2500温度利面语句:
    >> d2(1)[0 1 2 3 4 5]' 时间输入 
    >> d2(2)[2000 20 60 68 77 110]' rpm2000温度输入 
    >> d2(3)[3000 110 180 240 310 405]' rpm3000 温度输入 
    >> d2(4)[4000 176 220 349 450 503]' rpm4000 温度输入 
    >> td2(261) 选择做插时间
    >> rpmd2(124) 选择做插 rpm 
    >> tempd2(2624) 选择做插温度
    >> temp_iinterp2(rpmttemp250026) 线形插决定 rpm2500t26 温度 
    temp_i  
    1404000 

    613 Spline 插
    关spline插611节已介绍interp1指定插方式spline做种方式 spline(xyxi)做中xyxi法interp1中语法相事实二种方法采相spline 函数做 运算执行interp1(xyxi'spline')时MATLAB呼spline(xyxi)做运算计算结果传回 interp1
    711 节相数做 spline 插示范
    >> x[0 1 2 3 4 5]'
    >> y[0 20 60 68 77 110]'
    >> y1spline(xy26)
    y1
    673
    >> y1spline(xy[2649])
    y1
    673 1052

    62 曲线拟合
    曲线拟合 (curvefitting) 名思义组离散数似曲线方程组代表解析形 态方程组方便运曲线拟合前述插许相似处二者区 曲线拟合找出曲线方程组插仅求出插数值
    找出似组数(代表数)曲线方程组许选择简单阶线性方程组 高阶项式介绍二种方法:线性回(linear regression)项式回(polynomial regression)

    621 线性回
    简单数组说明什线性回假设组数型态 yy(x)中
    x{0 1 2 3 4 5} y{0 20 60 68 77 110}
    果简单方程组似组数非阶线性方程组莫属先组数绘图
    图中斜线意假设阶线性方程组 y20x代表数方程组述绘图 MATLAB 指令列出计算线性方程组 y 值原数 y 值间误差方总合
    >> x[0 1 2 3 4 5]
    >> y[0 20 60 68 77 110]
    >> y120*x 阶线性方程组 y1 值
    >> sum_sq sum(yy1)^2) 误差方总合 573
    >> axis([1620120])
    >> plot(xy1xy'o') title('Linear estimate') grid
    意假设线性方程组根果换成设定采线性方程组 须较精确方式决定理想线性方程组求误差方总合做决定理想线性方 程序准样方法称方误差(least squares error)线性回MATLABpolyfit函数提供 阶高阶项式回法语法polyfit(xyn)中xy输入数组n项式阶数n1阶 线性回法polyfit函数建立项式写成
    polyfit函数输出值述项系数阶线性回例n1 二输出值果指令coefpolyfit(xyn)coef(1) coef(2)coef(n+1) 注意式n 阶 项式会 n+1 项系数线性回示范:
    >> x[0 1 2 3 4 5]
    >> y[0 20 60 68 77 110]
    >> coefpolyfit(xy1) coef 代表线性回二输出值
    >> a0coef(1) a1coef(2)
    >> ybesta1*x+a0 线性回产生阶方程组
    >> sum_sqsum(yybest)^2) 误差方总合 35682
    >> axis([1620120])
    >> plot(xybestxy'o') title('Linear regression estimate') grid

    622 项式回
    polyfit 时 回法统称项式回值注意见高阶项 式合理代表原数点图说明图中做曲线拟合分二阶九阶项式图 中出越高阶项式形成方程组振荡程度越剧烈(七阶皆现象)外五阶 项式会通原始数点选择阶项式合理曲线拟合函数见仁见智

    623 项式拟合函数计算
    polyfit关函数做项式函数计算 polyval polyfit 算出项式系数 () polyval 计算项式函数值语法polyval(coefx)中 coef 项式系数构成数组x计算项式值x数组举例说明
    >> x[0 1 2 3 4 5]
    >> y[0 20 60 68 77 110]
    >> coefpolyfit(xy1) 计算线性回项系数
    >> ybestpolyval(coefx) 直接polyval计算项式数值
    函数 polyval真果没话计算项式函数值费番功夫假设已五阶 项式回计算应项式值须步骤
    >> coefpolyfit(xy5)
    >> a0coef(1)
    >> a1coef(2)
    >> a2coef(3)
    >> a3coef(4)
    >> a4coef(5)
    >> a5coef(6)
    >> fa0 + a1*x + a2*x^2 + a3*x^3 + a4*x^4 + a5*x^5
    接著示范二阶九阶项式回程序
    >> x[0 1 2 3 4 5]
    >> y[0 20 60 68 77 110]
    >> newx00055 新数组形成更增量利回计算绘图
    >> for n29
    >> f(n)polyval(polyfit(xyn)newx)'
    >> plot(newxf(n)xy'o')
    >> title(['Poly regression deg'int2str(n)])
    >> xlabel('Time') ylabel('Temp') grid
    >> pause 次暂停清楚图执行步骤
    >> end
    述 title指令中示范变量输入(n代表项式阶数)利int2str指令 整数(integer) 转换成字串 (string)title中字串出现外 title指令中尚须 [ ] 叙述包括类似指令尚 num2str 实数转换成字串关新介绍详细说明请参 考 title int2str num2str 线说明

    第七章 方程组根

    71 项式根
    项式视阶数定根数实数复数求高阶项式根 须助数值方法幸MATLAB已数值方法写成函数roots(p)输入项式阶系数( p 代表)求解应根
    >> p[1 3 2]
    >> rroots(p)
    r
    2
    1
    >> p[1 12 0 25 116] 注意二阶项系数零须输入否项式阶数
    >> rroots(p) 实数根复数根
    r
    117473
    27028
    12251 + 14672i
    12251 14672i
    roots 相关函数尚 poly real二函数途验算求解根展开求原项式 例二次方程组根2 1式计算原项式
    poly 函数求出项式阶系数语法 poly(r)中 r 代表根数组 real 计算时产生假虚部系数会种情形请参考例子
    >> r[2 1]
    >> pppoly(r) pp(x+2)(x1)x^2+3x+2
    pp
    1 3 2
    >> p[1 4 6 4]
    >> rroots(p)
    r
    20000 10000 + 10000i 10000 10000i
    >> pppoly(r) 项式系数原项式 p 相
    pp
    1 4 6 4
    >> pp[1 7 12 9] 项式
    >> rroots(pp)
    r
    49395
    10303 + 08721i
    10303 08721i
    >> pppoly(r) 注意计算误差会假虚部产生
    pp
    10000 70000 120000 90000 + 00000i
    >> ppreal(pp) real假虚部原项式原
    pp
    10000 70000 120000 90000

    72 非线性方程组实根
    果求根方程组项式形态 roots 函数类方策’h半非线性方程组 函数形态变化解类方程组根 fzero函数实找函数 f(x) x 值代入时会该函数值零 (f(x)0)根特性 fzero求根
    求方程组根三步骤:
    1 先定义方程组注意必须方程组安排成 f(x)0 形态例方程组sin(x)3 该方程组应表示 f(x)sin(x)3 mfile 定义方程组
    2 代入适范围 x y(x) 值该函数分布图画出藉解该方程组「长相」
    3 图中决定y(x)处附(x0) x 轴相交fzero语法fzero('function'x0) 求出 x0附根中 function 先前已定义函数名称果函数分布图出根 须代入根附 x0求出根
    分介绍数方程组说明求解根
    例方程组
    sin(x)0
    知道式根 求根方式:
    >> rfzero('sin'3) sin(x)建函数名称sin须定义
    r 选择 x3 附求根
    31416
    >> rfzero('sin'6) 选择 x6 附求根
    r
    62832
    例二方程组先前提 MATLAB 建函数 humps须知道方程组形态划出找出根位置求根方式 :
    >> xlinspace(23)
    >> yhumps(x)
    >> plot(xy) grid 图中出01附二根
    >> rfzero('humps'12)
    r
    12995
    例三方程组

    方程组实项式说明 roots 函数找出根外节介绍方法求根注意二者解法结果求根方式:
    mfunction f_1m
    function yf_1(x) 定义 f_1m 函数
    yx^32*x5
    >> xlinspace(23)
    >> yf_1(x)
    >> plot(xy) grid 图中出21附二根
    >> rfzero('f_1'2) 决定2附根
    r
    20946
    >> p[1 0 2 5]
    >> rroots(p) 求解项式根方式验证
    r
    20946
    10473 + 11359i
    10473 11359i
    例四方程组

    求根方式:
    mfunction f_2m
    function yf_2(x) 定义 f_2m 函数
    yx^2*sin(x)+cos(x)
    >> xlinspace(33)
    >> yf_2(x)
    >> plot(xy) grid 图中出13附二根
    >> rfzero('f_2'1) 决定1附根
    r
    08952
    >> rfzero('f_2'3) 决定3附根
    r
    30333
    例五方程组

    求根方式:
    mfunction f_3m
    function yf_3(x) 定义 f_3m 函数
    y2*exp(x)*sin(2*pi*x)05
    >> x0012 yf_3(x)
    >> plot(xy) grid 图中出0051附三根
    >> rfzero('f_3'0) 决定0附根
    r
    00420
    >> rfzero('f_3'05) 决定05附根
    r
    04368
    >> rfzero('f_3'1) 决定1附根
    r
    11435

    第八章 数值积分微分

    81 数值积分
    先考虑积分式数学式:
    中a b分积分式限限f(x) 积分函树求解述积分式必须设定a b f(x) MATLAB 积分函数求解程定义 f(x) 设定ab须设定区间 [ab] 间离散 点(discretized points) 数目剩工作选择精度积分法求解

    811 梯形法
    MATLAB提供简单积分函数梯形法trapz先说明梯形法语法trapz(xy)中xy分代表数目相 数组矩阵yx关系函数型态(ysin(x))函数描述离散型态(第八章介 绍xy皆离散点)
    简单积分式
    MATLAB 程序
    >> x0pi100pi
    >> ysin(x)
    >> ktrapz(xy)
    k
    19998

    812 二次函数法
    MATLAB 外提供二种积分函数分辛普森法 quad 牛顿康兹法 quad8三种方法精确度低 高分 trapz quad quad8
    二种方法积分法梯形法语法 trapz 语法 quad('function'ab) (quad8语法相)中function已定义函数名称(sin cos sqrt log 等) a b积分限 限 trapz较quad quad8处二者类似解析式积分式须设定限定义积分 函数 trapz针离散点型态数做积分
    简单积分式
    MATLAB 程序
    >> a0 b05
    >> kqquad('sqrt'ab)
    kq
    02357
    >> kq8quad8('sqrt'ab)
    kq8
    02357
    较复杂积分式
    >> x10172
    >> yhumps(x)
    >> areatrapz(xy)
    area
    259174
    >> x10072
    >> yhumps(x)
    >> areatrapz(xy)
    area
    266243
    >> areaquad('hump'12)
    area
    263450
    >> areaquad8('hump'12)
    area
    263450

    82 数值微分
    函数 f(x) xa 微分表示
    述微分项意义 xa 点切线斜率观念会应面介绍差分表示式数值差分 求数值微分方法

    821 差分表示法
    知道微分项计算二相邻点 x+h x 间函数取列极限求
    原连续空间离散点取代述极限离散点方式计算 差分式 (difference equation)
    中式称前差分参考点点前式意 义二点函数值计算斜率事实式计算微分值外 列二式计算

    高阶微分项利低阶微分项计算举例说二阶微分式表示

    应差分式






    822 差分函数
    述提差分式 MATLAB 应diff 函数计算二相点差值 语法 diff(x)中 x代表组离散点 假设x y(x)数
    x[1 3 5 7 9] y[1 4 9 16 25]
    diff(x)[2 2 2 2] diff(y)[3 5 7 9]注意二者皆差分计算数点剩 4 5 数值微分 dydiff(y)diff(x)
    计算列项式 [4 5] 区间微分
    方式求解
    >> xlinspace(45) 产生100x离散点
    >> p[1 3 11 27 10 24]
    >> fpolyval(px)
    >> plot(xf) 项式函数绘图
    >> title('Fifthdeg equation')
    >> dfbdiff(f)diff(x) 注意分计算diff(f)diff(x)
    >> xdx(2length(x)) 注意99df值应x2x3x100点
    >> plot(xddfb ) 项式微分项绘图
    >> title('Derivative of fifthdeg equation')
    假设找出述项式局部极值(local critical value)利局部极值点微分零 点左侧右侧二点微分值定正负二点微分值相负值针性质找 出局部极值点原项式数示范:
    >> productdfb(1length(dfb)1)*dfb(2length(dfb)) 注意二相点值相写法
    >> critxd(find(product<0)) 注意find指令
    述项式中央差分方式计算函数微分项diff计算须行计算:
    >> numf(3length(f))f(1length(f)2) 注意中央差分 f(k+1)f(k1)
    >> denox(3length(f))x(1length(f)2) 注意中央差分 x(k+1)x(k1)
    >> df_cnumdeno
    >> xdx(2length(x)1) xd点数98
    >> plot(xddf_c)
    >> title('Derivative of fifthdeg polynomial')
    例子针数组离散型态注意原数代表函数分布明显折角 阶微分数值微分计算微分函数分布极曲折变化
    >> x0011
    >> y[447 1978 328 616 708 734 766 956 948 930 112]
    >> plot(xy'o'xy)
    >> title('y(x) data plot')
    >> ylabel('y(x)') xlabel('x')
    >> dydiff(y)diff(x)
    >> xdx(1length(x)1)
    >> plot(xddy)
    >> title('Approximate derivative using diff')
    >> ylabel('dydx') xlabel('x')

    第九章 常微分方程组

    91 微分方程组
    阶常微分方程组 (ordinary differential equation ODE) 式表示

    中x 独立变量 y x 函数求解什函数 y(x) 满足述 ODE阶 ODE 例子:

    述已知ODE外须起始条件y0y(x0)解方程组xx0时y(x)y0述方程组 解析解 (analytical solution) :

    数值方法求解述 ODE 问题转换已知 y(a) 函数值计算y(b)泰勒序数 y(b) 做展开

    中 ba+h阶泰勒序数似式

    二阶泰勒序数似式

    MATLAB 解ODE 数值方法利述二阶更高阶三四五阶泰勒序数似式计算 f(b)




    92 龙格库达方法
    龙格库达 (RungeKutta) 方法通解 ODE 方法计算精确度求低阶高阶 计算式举例说阶龙格库达法

    实式阶泰勒序数似式令 阶龙格库达法 精确度太低真正解ODE 时少须二阶方法
    MATLAB应龙格库达法函数ode23 ode45中ode23时二阶三阶龙格库达法求解ode45 四阶五阶龙格库达法求解语法ode23('dy'x0xny0)中 dy ODE中等式右边函数( 前介绍)x0 xn 解ODE区间 [x0 xn] 二端点y0起始值 (y0y(x0))ode45语法 ode23相
    先前四 ODE 解法:
    例区间 [2 4] 解 ODE:

    mfunction g1m
    function dyg1(xy)
    dy3*x^2
    >> [xnum_y]ode23('g1'2405)
    >> anl_yx^375
    >> plot(xnum_yxanl_y'o')
    >> title('Solution of g1')
    >> xlabel('x') ylabel('yf(x)') grid
    例二区间 [0 5] 解 ODE:

    mfunction g2m
    function dyg2(xy)
    dy0131*y
    >> [xnum_y]ode23('g2'054)
    >> anl_y4*exp(0131*x)
    >> plot(xnum_yxanl_y'o')
    >> title('Solution of g2')
    >> xlabel('x') ylabel('yf(x)') grid
    例三区间 [0 2] 解 ODE:

    mfunction g3m
    function dyg3(xy)
    dy2*x*cos(y)^2
    >> [xnum_y]ode23('g3'02pi4)
    >> anl_yatan(x*x+1)
    >> plot(xnum_yxanl_y'o')
    >> title('Solution of g3')
    >> xlabel('x') ylabel('yf(x)') grid
    例四区间 [0 3] 解 ODE:

    mfunction g4m
    function dyg4(xy)
    dy3*y+exp(2*x)
    >> [xnum_y]ode23('g4'033)
    >> anl_y4*exp(3*x)exp(2*x)
    >> plot(xnum_yxanl_y'o')
    >> title('Solution of g4')
    >> xlabel('x') ylabel('yf(x)') grid
    果述方法改 ode45 计算法察觉出ode23解间差异选 ODE 代表函数分布变化缓高阶方法显现出优点二者计算误差做较ode45 误差量级会 ode23例子:
    mfunction g1m
    function dyg1(xy)
    dy3*x^2
    mfile odes1m
    Solve an ode using ode23 and ode45
    clg
    [x1num_y1]ode23('g1'2405)
    anl_y1x1^375
    error_1abs(anl_y1num_y1)abs(anl_y1) ode23 计算误差
    [x2num_y2]ode45('g1'2405)
    anl_y2x2^375 注意 x2 数 x1 定相
    error_2abs(anl_y2num_y2)abs(anl_y2) ode45 计算误差
    hold on
    subplot(221)
    plot(x1num_y1x1anl_y1'o')
    title('ODE23 solution') ylabel('y')
    subplot(222)
    plot(x1error_y1) 注意二种方法误差
    title('ODE23 error') ylabel('y') ode23 误差量级 1e16
    subplot(223)
    plot(x2num_y2x2anl_y2'o')
    title('ODE45 solution') ylabel('y')
    subplot(224)
    plot(x1error_y2)
    title('ODE45 error') ylabel('y') ode45 解没误差
    hold off
    例子:
    mfunction g5m
    function dyg5(xy)
    dyy+2*cos(x)
    mfile odes1m
    Solve an ode using ode23 and ode45
    clg
    [x1num_y1]ode23('g5'051)
    anl_y1sin(x1)+cos(x1)
    error_1abs(anl_y1num_y1)abs(anl_y1)
    [x2num_y2]ode45('g5'051)
    anl_y2sin(x2)+cos(x2)
    error_2abs(anl_y2num_y2)abs(anl_y2)
    hold on
    subplot(221)
    plot(x1num_y1x1anl_y1'o')
    title('ODE23 solution') ylabel('y')
    subplot(222)
    plot(x1error_y1) 注意二种方法误差
    title('ODE23 error') ylabel('y') ode23 误差量级 1e4
    subplot(223)
    plot(x2num_y2x2anl_y2'o')
    title('ODE45 solution') ylabel('y')
    subplot(224)
    plot(x1error_y2)
    title('ODE45 error') ylabel('y') ode45 误差量级 1e6
    hold off

    第十章 MATLAB数值计算实
    101 非线形方程求根
    求:分二分法迭代法求解非线形方程
    附迭代法求解参考代码:
    文件 func0m
    function yfunc0(x)
    ysin(x)*cos(x) 假定非线形方程:sin(x)cos(x)0

    文件 ddf_fxxfcm
    输入参数:e迭代精度x0初始点输出参数z非线形方程根hasroot0表示解
    function [xhasroot]dff_fxxfc(x0e)
    hasroot0
    k0 迭代次数
    while k<10000
    xfunc0(x0)
    if abs(xx0) hasroot1 break
    end
    kk+1
    x0x
    end

    102 LU分解法解线形方程组
    求:定意线形方程组LU分解算法求出解
    提示:MATLAB中LU函数
    103 项式插值
    求:编写拉格朗日插值法MATLAB程序
    附拉格朗日插值法代码:
    MatLab 定义函数 lag_func
    输入参数:xiyi插值节点值x插值点x轴值输出参数:y插值获x应值
    function ylag_func(xiyix)
    计算l(ij)
    [rn]size(xi)
    [rm]size(x)
    lzeros(nm)
    for i1n
    for j1m
    a1
    for k1n
    if (k~i)
    aa*(x(j)xi(k))(xi(i)xi(k))
    end
    end
    l(ij)a
    end
    end
    yyi*l



    104 样条插值
    求:够样条插值
    提示:splineinterp函数

    105 曲线拟合
    求:二法拟合定数
    提示:ployfit函数
    106 数值积分
    求:NewtonCotes积分编写动步长迭代积分法程序
    附动变步长迭代积分程序:
    变步长迭代积分法函数
    假定积函数jf_func
    输入参数:xiyi积函数采样点ab积分限e精度输出参数:z积分值
    function zjf(xiyiabe)
    n1 i1
    T1(ba)*(jf_func(xiyia)+jf_func(xiyib))2
    e01
    while e0>e
    k1n
    H((ba)n)*jf_func(xiyia+(2*k1)*(ba)2n)
    n2*n
    T2(T1+sum(H))2
    e0abs(T2T1)
    T1T2
    ii+1
    if i>10000
    break
    end
    end
    zT2



    107 常微分方程
    求:够欧拉法龙格库塔法求解常微分方程
    提示:欧拉法类似前面迭代法解非线形方程根龙格库塔法参见ode系列函数

    108 综合练
    练涉插值函数拟合FFT变换数值积分方面容:
    30
    45
    67
    71
    66
    57
    42
    39
    37
    30
    f(x)
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    x

    1 意定组数(n+1)点(数仅供参考)
    2Lagrange插值法n次项式曲线1
    3样条插值法3次项式曲线2
    4二法进行[n2]次项式曲线拟合曲线3
    5三条曲线原数起画坐标进行较
    6三条曲线定义域中进行积分分NewtonCotes求积法动步长迭代法较计算结果


    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 5 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    matlab课设

    摘 要数字滤波器是一一个离散系统。该系统能对输入的离散信号进行处理,从而获得所需的有用信息。现代数字滤波器的设计大体可以分为IIR 和FIR两大类,可以用软件和硬件两种方法来实现,而选用MAT...

    4年前   
    705    0

    MATLAB工具箱

    Matlab工具箱以及其它组件 Aerospace   Blockset                   太空模块 1.6.1 Bioinformatics Toolbox      ...

    5年前   
    1226    0

    matlab习题及答案

    2. 用MATLAB语句输入矩阵和3.假设已知矩阵,试给出相应的MATLAB命令,将其全部偶数行提取出来,赋给矩阵,用命令生成矩阵,用上述命令检验一下结果是不是正确。4.用数值方法可以求出,试...

    2年前   
    778    0

    MATLAB的常用应用总结

    §7 MATLAB的应用 7.1 MATLAB在数值分析中的应用 插值与拟合是来源于实际、又广泛应用于实际的两种重要方法。随着计算机的不断发展及计算水平的不断提高,它们已在国民生产和...

    5年前   
    1079    0

    matlab实现声音转换

    数字信号处理——声音转换课题报告1.课题研究目标利用matlab或其他编程软件对音频信号进行处理,要求实现声音的转换。如男声和女声的转换,老人声音与童声的转换。2.课题使用工具Matlab3....

    3年前   
    1170    0

    matlab课后习题答案

    习题二 1. 如何理解“矩阵是MATLAB最基本的数据对象”? 答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特...

    5年前   
    3206    0

    16QAM调制解调(MATLAB)

    题目:基于MATLAB的16QAM及32QAM系统的仿真原理:QAM是一种矢量调制,将输入比特映射到一个复平面,形成复数调制信号,然后将I信号和Q信号(实部虚部)分量采用幅度调制,分别对应调制...

    3年前   
    1018    0

    数字信号的最佳接收的MATLAB仿真

    数字信号的最佳接收的仿真一、 实验目的1. 理解数字信号胡最佳接收原理及最佳接收准则。2. 掌握二进制确知信号最佳接收机的设计。二、 实验原理1. 最佳接收概念通信系统中信道特性不理想及信道噪...

    8个月前   
    263    0

    精讲多练matlab习题

    第一章2.设计算:>> A=1.2; B=-4.6;C=8.0;D=3.5;E=-4.0;>> T=atan(2*pi*A+E/(2*pi*B*C))/DT =0.4112>> x=pi/18...

    5个月前   
    169    0

    负荷预测matlab仿真报告

    评 语课程总评成绩: 指导老师: ...

    3年前   
    633    0

    基于matlab的坐标正反算

     测量程序设计实验报告实验名称:坐标正反算实验三 坐标正反算一、实验目的编写坐标正反算程序,并对格式化文件数据进行计算,验证程序。二、实验内容1、编写坐标正算程序1) 建立以xy_direc...

    3年前   
    911    0

    基于matlab的电力电子仿真设计报告

    课程设计(综合实验)报告( 2010-- 2011 年度第 1 学期)名 称:电力电子技术课程设计院 系:电气与电子工程学院班 级: 电气班 学 号:...

    4年前   
    973    0

    实验一典型环节的MATLAB仿真

    实验一 典型环节的MATLAB仿真一、实验目的1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型...

    1年前   
    441    0

    基于MATLAB的ASK调制解调实现课程设计

    大学《通信原理》课程设计报告学 院 专 业 班 级 学 号 ...

    3年前   
    725    0

    基于matlab的人民币面额识别

    基于matlab的人民币的自动识别 姓 名 学 号 院 系 信息...

    4年前   
    1038    0

    基于matlab风力发电系统的建模与仿真

     ( 2009 届)毕业设计(论文)题  目:   风力发电系统的建模与仿真     学  院:   嘉兴学院             专  业:   电气工程及其自动化       ...

    2年前   
    707    0

    MatLab实习心得体会

    MatLab实习心得体会  我从中国石油大学(北京)来到大庆油田勘探开发研究院实习,刚刚来到这里时我内心充满了激动和喜悦,对这个有着辉煌成绩的科研单位充满了期待。到了这里没多久我就参加培训中心...

    10年前   
    525    0

    《应用计算方法教程》matlab作业二

    作业六6-1 试验目的 计算特征值,实现算法试验内容:随机产生一个10阶整数矩阵,各数均在-5和5之间。(1) 用MATLAB函数“eig”求矩阵全部特征值。(2) 用幂法求A的主特征值及对应...

    2年前   
    508    0

    开题报告-基于MATLAB的锅炉气温神经网络控制

    开题报告电气工程及自动化基于MATLAB的锅炉气温神经网络控制一、综述本课题国内外研究动态,说明选题的依据和意义1.过热汽温控制系统和神经网络控制现状我国目前电站锅炉中燃煤炉占有最大比重,锅炉...

    4年前   
    840    0

    基于MATLAB的电力系统短路故障分析与仿真

    ·……………………. ………………. …………………毕 业 论 文 基于MATLAB的电力系统短路故障分析与仿真 院 部 机械与电子工程学院 ...

    3年前   
    832    0

    文档贡献者

    文***享

    贡献于2021-10-22

    下载需要 5 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档