matlab 自定义函数

2024-11-20 23:30:14
推荐回答(4个)
回答1:

[提问前请先在知道搜索,谢谢]

MATLAB是一门计算机编程语言,取名来源于Matrix Laboratory,本意是专门以矩阵的方式来处理计算机数据,它把数值计算和可视化环境集成到一起,非常直观,而且提供了大量的函数,使其越来越受到人们的喜爱,工具箱越来越多,应用范围也越来越广泛。MATLAB的发展历史见下表1-1。(年份不详的请知道的网友补充。)时间
版本
1985 1.0
1986 2.0(含控制系统工具箱)
1988 3.9
1993 4.0(含Simulink1.0)
1994 4.2(含simulink2.0)
不详 4.3
不详 5.3
2000 6.0(含Simulink4.0)
2001 6.1(含Simulink4.1)
不详 6.21
2003 6.5

1.1 安装
MATLAB的安装非常简单,这里以Windows版本6为例。运行setup后,输入正确的序列号,选择好安装路径和安装的模块,几乎是一直回车就可以了。这里有一点要注意的是,由于不同操作系统设置,可能会出现一些意外错误,而且越高版本的MATLAB对计算机系统的要求也越高,如6.1版本要求至少64M内存,最好128M。所以根据自身情况选择适合的版本安装,最好还要在操作系统初安装后就安装,避免出现意外。

1.2 运行
MATLAB的启动运行:#:\MATLAB6p1\bin\win32\matlab.exe(其中#为安装盘符。)但一般安装完毕后会在安装目录下有一个快捷运行方式。
MATLAB启动后显示的窗口称为命令窗口,提示符为“>>”。一般可以在命令窗口中直接进行简单的算术运算和函数调用。如果重复输入一组表达式或计算复杂,则可以定义程序文件来执行达到目的。程序文件扩展名为“.m”,以文本文件形式保存。有两种方式运行程序文件:一是直接在MATLAB命令窗口输入文件名,二是选择File->Open打开m文件,弹出的窗口为MATLAB编辑器。这时可选择它的Debug菜单的Run子菜单运行。

1.3 帮助文件
学习MATLAB软件最好的教材是它的帮助文件。只要硬盘容量够大,极力推荐安装完整的帮助文档,即使你对阅读英文不是很有信心,但我相信其足够的实例还是能让你对要查询的命令函数有一定的了解的。有两种方法取得帮助信息:一是直接在命令窗口输入>>help 函数名;如help imread,会得到相应函数的有关帮助信息。二是在帮助窗口中查找相应信息。不同版本的帮助菜单界面有所不同,这只能依赖于你自己去熟悉了。但总体上都和windows的界面具有相似的处理过程。

1.4 MATLAB所定义的特殊变量及其意义变量名 意义
help 在线帮助命令, 如用help plot调用命令函数plot的帮助说明。
who 列出所有定义过的变量名称
ans 最近的计算结果的变量名
eps MATLAB定义的正的极小值=2.2204e-16
pi π值3.14159265...
inf ∞值,无限大
NaN 非数

1.5 MATLAB中的运算符和特殊字符说明符号
符号用途说明
+ 加
- 减
.* 点乘 详细说明help arith
* 矩阵相乘
^ 矩阵求幂
.^ 点幂
\ 左除 详细说明help slash
/ 右除
.\ 点左除
./ 点右除
kron 张量积 详细说明help kron
, 作分隔用,如把矩阵元素、向量参数、函数参数、几个表达式分隔开来
; (a)写在一个表达式后面时,运算后命令窗口中不显示表达式的计算结果
(b)在创建矩阵的语句中指示一行元素的结束,例如m=[x y z;i j k]
: (a)创建向量的表达式分隔符,如x=a:b:c
(b)a(:,j)表示j列的所有行元素;a(i,:)表示i行的所有列元素;a(1:3,4)表示第四列的第1行至第3行元素
() 圆括号
〔〕 创建数组、向量、矩阵或字符串(字母型)
{} 创建单元矩阵(cell array)或结构(struct)
% 注释符,特别当编写自定义函数文件时,紧跟function后的注释语句,在你使用help函数名时会显示出来。
' (a)定义字符串用
(b)向量或矩阵的共轭转置符
.' 一般转置符
... 表示MATLAB表达式继续到下一行,增强代码可读性
= 赋值符号
== 等于关系运算符
<,> 小于,大于关系运算符 详细说明help relop
& 逻辑与
| 逻辑或
~ 逻辑非
xor 逻辑异或

回答2:

function N=verh(t,r,K,N0)
N=dsolve('DN=r*N*(1-N/K)','N(0,r,K,N0)=N0');
N=eval(N); % 加上这句就可以了

回答3:

看一下帮助 help dsolve
Examples:

dsolve('Dx = -a*x') returns

ans = C1/exp(a*t)

x = dsolve('Dx = -a*x','x(0) = 1','s') returns

x = 1/exp(a*s)

S = dsolve('Df = f + g','Dg = -f + g','f(0) = 1','g(0) = 2')
returns a structure S with fields

S.f = (i + 1/2)/exp(t*(i - 1)) - exp(t*(i + 1))*(i - 1/2)
S.g = exp(t*(i + 1))*(i/2 + 1) - (i/2 - 1)/exp(t*(i - 1))

dsolve('Df = f + sin(t)', 'f(pi/2) = 0')
dsolve('D2y = -a^2*y', 'y(0) = 1, Dy(pi/a) = 0')
S = dsolve('Dx = y', 'Dy = -x', 'x(0)=0', 'y(0)=1')
S = dsolve('Du=v, Dv=w, Dw=-u','u(0)=0, v(0)=0, w(0)=1')
w = dsolve('D3w = -w','w(0)=1, Dw(0)=0, D2w(0)=0')

回答4:

dsolve是用来求符号解的,solver是来求数值解的~希望对你有帮助~