Matlab笔记
前言——最终成绩构成
平时30+期中20+期末50
↓
平时包括: 平时作业与单元检测20+云班测试5+mooc单元检测5
命令行的常用快捷指令
clear 清楚工作空间中的变量
clear v1 v2 (v1 v2是变量名) 清除指定变量
clc 清楚命令行窗口内容
help 命令名 给出指定命令用法介绍
doc 命令名 打开指定命令帮助文档
whos 列出当前所有变量详细信息
↑↓ 用于浏览历史记录 双击执行
常用赋值语句四格式
表达式
变量名 = 表达式
变量名 = 函数名(参数)
[变量名列表] = 函数名(参数)
矩阵相关及其用法
magic (幻方) M = magic(n)
空矩阵 [ ]产生一个空矩阵,或者删除元素用
A(i) 列拼接后第i个元素
A(:) 列拼接
A(a:b:c)
A(x,y)第x行第y列
tril(A)下三角
triu(A)上三角
diag(A)取对角
diag(diag(A))
解线性方程组Ax = b
A\b
1 | >>> A= rand(3,3) |
inv(A)*b
A^(-1)*b
还有一种课外的方法
rref [A b](线性代数最后一列是解向量)
1 | >> rref([A b]) |
矩阵特征值
用法/函数
lambda = dig(A)求特征值
dig 既可以找出特征值,也可以找出特征向量,使得计算变得容易
A^n 在matlab已经优化
例子
减肥食谱中的线性代数
1 | >> A = [36 51 13;52 34 74; 0 7 11] |
Leslie模型及其应用
简单迁移模型:每年甲镇人口10%前往乙镇,乙15%前往甲。假设某年甲乙两镇人口各有120 80人,问两年后两镇人口数量分布如何?
设总人口不变,人口只在甲乙间流动
引入变量x1(k),x2(k)
有如下关系:
1 | x1(k+1) = 0.9x1(k)+0.15x2(k) |
可知有这样的关系:X(k+1) = AX(k)
两年后(二阶)即求A(2)
Q:那长期趋势?在无限长时间后两镇人数的变化规律与矩阵A有何关联?
编辑器的常用快捷指令
F5 保存并运行当前脚本
ctrl+r 对选定的行做注释
ctrl+t (对应)取消注释
ctrl+] 对选定的行缩进(可重复使用)
ctrl+[ 对选定的行取消缩进
创建数组
逗号操作符 等差数列 公差 项数
冒号操作符 等差数列 末项 公差
linspace(a,b,n)
X,Y = meshgrid(x,y);%1:生成平面网格坐标矩阵 meshgrid 可以快速生成坐标数对
拼接矩阵
横向拼接 空格 要求列相同
纵向拼接 分号 要求行相同
符号计算
1 |
sym x
syms x y
1 |
|
old可以是单一变量,也可以是多变量构成的向量,new是用来替换的符号表达式
符号计算精度及其数据类型转换
1 |
|
级数求和
1 | S = symsum(f,n,a,b)%级数n,f是表达式,a是起始点,b是终点(无穷级数可以用inf) |
taylor 泰勒多项式(包含麦克劳林)
1 | taylor(f,n,x) %n-1 mkll |
牢记n-1
微积分符号计算
求导
1 | diff(f)%(不推荐) |
积分
1 | int(f)%(不推荐) |
intlin
作图
plot
1 | ```plot(x1,y1,s,x2,y2,s,...) |
多条可以一条语句表达
ezplot(fun [min max min max])填入表达式以及约束条件即可
eg:绘制衰减震荡曲线
fplot可替代前者(2016b版本已经移除前者)
1 | y = @(x) exp(-0.5*x).*sin(5*x); |
cylinder
cylinder - 生成圆柱,此 MATLAB 函数 返回半径等于 1 的圆柱的 x、y 和 z 坐标。该圆柱绕其周长有 20 个等距点。
1 | cylinder([1 1])%上圆下圆半径都是1 未加第三个参数则默认20个矩形组成侧面 |
图形注解
legend
title(‘’) 添加标题
xlabel 调整x轴属性
ylabel调整y轴属性
数组运算加“.”
end 的特殊用法
非线性方程求跟与曲线拟合
非线性方程:f(x) = 0 有代数方程与含三角函数,指数函数或超越函数两种
下看一些常用的矩阵运算函数命令
solove命令
试着求解一个方程(组)
1 | >> syms x |
roots命令
多项式方程求根
p是次数由高到低排列的的多项式系数
1 | p = [3 -2 4]%代表3x^2-2x-4 = 0 |
用数值方法求解非线性方程—————常先画图估计根大概所在区间,之后逼近收敛
先找出隔根区间,再从一点或多点出发,逐次逼近,寻求满足精度的根的近似值
求根:二分法
求根: 不动点迭代法
定理1:设x*为x = @(X)的不动点,@’(x)的某邻域连续,且绝对值小于一,这不动点迭代法xk+1 = @(xk)局部收敛
定理2:…
Newton迭代法
曲线拟合
应用:人口增长问题拟合
微分方程
求解微分方程的欧拉法
CLASSIC Example
输出斐波那契数列
循环ver
1 | function [ F ] = feiboNum( n ) |
递归ver
1 |
|
输入一个任意位整数数,单独输出他每个位数整数
1 | function [ digits ] = getDigits( n ) |
输出x^-2y = 1所有正整数解x,y<=1000
1 | function [ M,L ] = findSolution% 无输入 |
ps: 改进可以更matlab 避免循环
输出0到任意正整数范围内的质数
1 | function [ p ] = myPrimes( n ) |
比较不同算法实现同一需求的运行速度 ‘cputime’
1 |
|
输入整数n,用函数返回n层杨辉三角
1 | function Y=young(n) |
分段函数
1 | function f = mPiecewise2(x) |
或者
1 | function f = myPieceWise(x) |
汉诺塔
1 | function hanoi2(n,A,B,C) |
作图 旋转的内接正方形
1 | points = [1 -1 -1 1 1 |
作图 n叶玫瑰线 (polar实例)
1 | %三叶玫瑰线 |
作图 条形图/直方图绘制 (bar bar3实例)
1 | %条形图/直方图的绘制 |
作图 二元函数绘图 (plot3实例)
1 | %二元函数绘图 |
作图 空间曲面绘制 生成地球经纬球像(mesh系列实例)
1 | %空间曲面绘制的基本步骤 |
1 | %下为mesh()实例1 |
作图 等高线以及立体等高线绘制 (contour contour3实例)
1 | %contour 与 contour3 |
作图 点线连接
X = [x1,x2,…]
Y同
1 | X = [2,2,2,2]; |
创建符号数组f(2行2列)
使用syms 定义20个符号变量x1 to x20(for i = 1:20)
1 | for i = 1:20 |
计算 f = arctan(x) 的导数并绘图
1 | syms x |
符号表达式中变换替换方法——subs()对应例子
1 | t = linspace(-6,6,30);%-6到6等距离取了30个点 |
数值转化为数值数据:double(A)实例
练习:计算曲线段f(X) = exp(ax)sin(bx),0=<x=<2pi,绕x轴旋转曲面体积
1 | syms a b x |
泰勒实例:椭圆积分近似表达式
$\int_{0}^{\frac{\pi}{2}}$ $\sqrt{1-e^2*cos^2(t)}$dt
1 | syms t e2 x |
微积分实验
一
已知函数y = a*exp(x)/sqrt(a^2+x^2) 求x = 5a处二阶导数值
二
六阶mkll多项式 y= 1/1+x^2
求定积分 $\int_{?}^{\frac{?}{?}}$ $\sqrt{1-e^2*cos^2(t)}$dt
…
四
funy = 174.42(x1/x5)(x3/(x2 - x1))^0.85*
sqrt((1 - 2.62(1 - 0.36(x4/x2)^(-0.56))^(3/2)(x4/x2)^1.16)/(x6x7));
周一课上实验:线性代数实验
动物年龄组的变化趋势
三个年龄组:零到五岁,六到十岁,十一到十五岁。
第二组平均繁殖四个后代
第三组平均繁殖三个后代
第一第二组五年的存活了吧分别为0.5,0.25;
现在又三个年龄组动物各1000;计算五年后,十年后,十五年后各个年龄组动物数量
模型构建
t0=0;t1=5,t2=10,t3-15
各个年龄组动物数量关系