Matlab——plot函数

本文深入探讨了MATLAB中plot函数的基本语法、功能介绍,并通过两个实例详细展示了如何利用plot函数绘制线性二维图,以及如何在多条线段间进行颜色区分。

plot函数——基本平面图形函数

【语法说明】

plot(X,Y):当X,Y均为实数向量,且为同维向量,X=[x(i)],Y=[y(i)]时,则plot(X,Y)先描出点(x(i),y(i)),然后用直线依次相连;若X,Y为复数向量,则不考虑虚数部分。

plot(Y):若Y为实数向量,Y的维数为n,则plot(Y)等价于plot(X,Y),其中x=1:n;若Y为实数矩阵,则把Y按列的方向分解成几个列向量,而y的行数为n,则plot(Y)等价于plot(X,Y)其中x=[1;2;…;n]。

plot(X1,Y1,X2,Y2,…):Xi与Yi成对出现,plot(X1,Y1,X2,Y2,…)将分别按顺序取两数据Xi与Yi进行画图。若其中仅仅有Xi或Yi是矩阵,其余的为向量,向量维数与矩阵的维数匹配,则按匹配的方向来分解矩阵,再分别将配对的向量画出。


【功能介绍】

绘制线性二维图。在线条多于一条时,若用户没有指定使用颜色,则plot循环使用由当前坐标轴颜色顺序属性定义的颜色,以区别不同的线条。


【实例1】

x=0:pi/100:2*pi;
y=sin(x);
plot(x,y)

结果得到的是正弦函数曲线,如图所示。



【实例2】

x=0:pi/100:2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2)

得到的结果如果所示。


### MATLAB 中用于处理方程的常用函数 MATLAB 提供了一系列强大的工具来解决各种类型的方程,包括代数方程、微分方程以及优化问题中的非线性方程。以下是常用的方程求解函数及其基本用法。 #### 1. **`solve`** `solve` 是一个符号计算函数,主要用于解析代数方程或系统的精确解。 ```matlab syms x; eqn = sin(x) == cos(x); % 定义方程 sol = solve(eqn, x); disp(sol); ``` 此函数可以用来求解单一方程或多变量联立方程[^2]。 --- #### 2. **`fsolve`** 对于数值方法求解非线性方程组,`fsolve` 是首选。它基于最小化残差平方和的方法找到近似解。 ```matlab fun = @(x) [sin(x(1)) - x(2)^2; exp(-x(1)) + x(2)]; x0 = [0, 0]; % 初始猜测值 [x, fval] = fsolve(fun, x0); disp(x); ``` 注意 `fsolve` 属于 Optimization Toolbox,需确保安装该工具箱才能使用[^1]。 --- #### 3. **`roots` 和 `poly`** 当目标是多项式的根时,可以直接利用 `roots` 函数快速得到所有实部和虚部解。 ```matlab p = [1, 0, -4]; % 表示 x^2 - 4 = 0 r = roots(p); disp(r); ``` 如果已知根而想重建对应的多项式,则可逆向操作通过 `poly` 来实现: ```matlab r = [-2, 2]; p = poly(r); disp(p); ``` --- #### 4. **`linsolve`** 针对线性方程 Ax=b 的情况,推荐采用更高效的矩阵分解算法而非直接调用 `\` 运算符完成求解过程。 ```matlab A = [1, 2; 3, 4]; b = [5; 6]; x = linsolve(A,b); disp(x); ``` 相比通用左除运算符,`linsolve` 对特定结构(如稀疏矩阵)进行了性能优化[^2]。 --- #### 5. **`ode45`, `ode23s` 等 ODE 求解器** 这些函数专门设计给常微分方程 (ODE),支持初值条件下的时间步进模拟。 ```matlab function dydt = myODE(t,y) dydt = t*y; end [tspan, y] = ode45(@myODE,[0,5],1); % 时间范围[0,5],初始y=1 plot(tspan,y,'-o'); xlabel('Time'); ylabel('Solution Y'); title('Numerical Solution of an ODE using ode45'); ``` --- #### 6. **`lsqcurvefit` 或者 `lsqnonlin`** 正如提到过的内容,在曲线拟合场景下会频繁遇到需要调整模型参数使得误差达到最低的情况。这两个命令均依赖最小二乘准则工作。 ```matlab % Example setup for lsqcurvefit usage. tdata = linspace(0,10)'; ydata = exp(-0.5*tdata)+rand(size(tdata))/10; fittedFunc = @(c,t) c(1)*exp(c(2)*t); initialGuesses = [1,-1]; coefficients = lsqcurvefit(fittedFunc, initialGuesses, tdata, ydata); disp(coefficients); ``` 以上列举了几种核心类别下面涉及的不同层次功能模块。每一种都有其适用领域并伴随独特优势特性. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值