Matlab求解表达式
将一些变量声明符号变量(如syms x)
然后再可以把方程转化为Ax=y,
x=A\y;
1.创建符号变量的方法
如果想创建一个字符矩阵,如
[
I
x
y
−
I
x
y
−
I
x
z
−
I
x
y
I
y
y
−
I
y
z
−
I
x
z
−
I
y
z
I
z
z
]
\begin{bmatrix}I_{xy}&-I_{xy}&-I_{xz} \\-I_{xy}&I_{yy}&-I_{yz} \\-I_{xz}&-I_{yz}&I_{zz} \end{bmatrix}
⎣⎡Ixy−Ixy−Ixz−IxyIyy−Iyz−Ixz−IyzIzz⎦⎤
方法是
syms Ixx Iyy Izz Ixy Ixz Iyz
I=[Ixy -Ixy -Ixz;-Ixy Iyy -Iyz;-Ixz -Iyz Izz;];
如果创建一个字符向量,如
[
u
˙
,
v
˙
,
w
˙
]
T
;
[\dot u,\dot v,\dot w]^T;
[u˙,v˙,w˙]T;
方法是
syms u v w;
vel=[u v w].';%注意此处的转置符号用的是.'
%如果直接用’的话,是共轭转置,最后运算的时候所有跟vel相关的量就编程了conj( u ˙ \dot u u˙),conj( v ˙ \dot v v˙),这种形式。
用matlab检验自己计算的结果和论文上的结果是否一致
将两个表达式输进去,然后相减即可
注意将两者相减的结果,用simplify(结果)语句一下,笔者遇到矩阵相减结果看着结果不为0,实际为0,只是显示的问题,用合并同类项的方法最后还是剩下一个分量合并不了。
matlab表达式替换技巧
替换
matlab中,怎样用一个表达式替换一个变量?
https://zhidao.baidu.com/question/549552656.html
https://zhidao.baidu.com/question/198455537.html
更详细的subs置换方法
http://www.matlabhome.cn/post/7.html
httMatlab——sym和syms
ps://blog.csdn.net/GongPF/article/details/89516950
MATLAB中如何定义符号数组
https://www.ilovematlab.cn/thread-217988-1-1.html
(出处: MATLAB中文论坛)
请教下大家如何在MATLAB中定义符号数组
如 syms a(1) a(2) …a(100)
一个一个定义太麻烦了,有一次性定义的方法吗
回答:
a = sym(‘a’,[100,1])
此处可以参考matlab官方help文档
微分方程(组)求解
求解出二阶表达式后,面临的微分方程求解问题:
数值解和解析解。
没有解析解时的,ode数值解方法如下:
https://jingyan.baidu.com/album/ce09321b88152b2bff858fee.html?picindex=7
自己的一点理解。
自己的理解要把这些式子表示成如下形式
X
˙
\dot{X}
X˙=f(t,X),其中X=
[
x
1
,
x
2
,
.
.
.
.
x
n
]
T
[x_1,x_2,....x_n]^T
[x1,x2,....xn]T,
X
˙
=
[
x
˙
1
,
x
˙
2
,
.
.
.
.
x
˙
n
]
T
\dot X=[\dot x_1,\dot x_2,....\dot x_n]^T
X˙=[x˙1,x˙2,....x˙n]T,所以本质上是表示出
X
˙
=
[
x
˙
1
,
x
˙
2
,
.
.
.
.
x
˙
n
]
T
\dot X=[\dot x_1,\dot x_2,....\dot x_n]^T
X˙=[x˙1,x˙2,....x˙n]T里的每一个元素
x
˙
1
,
x
˙
2
,
.
.
.
.
x
˙
n
\dot x_1,\dot x_2,....\dot x_n
x˙1,x˙2,....x˙n.如果有相应表达式对应就是相应表达式对应,如果没有则表现为
x
˙
1
=
x
˙
1
\dot x_1=\dot x_1
x˙1=x˙1这样的效果,注意等式右边的
x
˙
1
\dot x_1
x˙1是拿
X
˙
\dot{X}
X˙=f(X)里边的X里的一个元素来表示。这
些文章大多表示成 Y ˙ \dot{Y} Y˙=f(t,Y),其中y= [ y 1 , y 2 , . . . . y n ] T [y_1,y_2,....y_n]^T [y1,y2,....yn]T, y ˙ = [ y ˙ 1 , y ˙ 2 , . . . . y ˙ n ] T \dot y=[\dot y_1,\dot y_2,....\dot y_n]^T y˙=[y˙1,y˙2,....y˙n]T,所以本质上是表示出 y ˙ = [ y ˙ 1 , y ˙ 2 , . . . . y ˙ n ] T \dot y=[\dot y_1,\dot y_2,....\dot y_n]^T y˙=[y˙1,y˙2,....y˙n]T里的每一个元素 y ˙ 1 , y ˙ 2 , . . . . y ˙ n \dot y_1,\dot y_2,....\dot y_n y˙1,y˙2,....y˙n.如果有相应表达式对应就是相应表达式对应,如果没有则表现为 y ˙ 1 = y ˙ 1 \dot y_1=\dot y_1 y˙1=y˙1这样的效果,注意等式右边的 y ˙ 1 \dot y_1 y˙1是拿 y ˙ \dot{y} y˙=f(y)里边的Y里的一个元素来表示。本质是一样的。
参考官方教程
https://ww2.mathworks.cn/help/matlab/ref/ode45.html?s_tid=doc_ta
理解:
X
˙
\dot{X}
X˙=f(X,t),其中的t,X并不完全会用到。
@(t,y)中不能写成@(t),虽然y未用到,但是形式上必须保留。
这一个时变项没看懂啥意思
回到之前的那个百度经验链接
https://jingyan.baidu.com/album/ce09321b88152b2bff858fee.html?picindex=7
这里这个比较复杂,覆盖的就很全面了。这里原链接这里有四张图,查看原文时,点进图片即可翻到下一张图片,在外边点向右的箭头会是下一页了。
Matlab绘图
如何在matlab中的xlabel,ylabel,legend和text函数中使用latex
关联数据
linkdata on
https://ww2.mathworks.cn/help/matlab/ref/linkdata.html
画多个子图
figure(1); % 第一个子图
plot(…);
figure(2); % 第二个子图
plot(…);
figure(3);
plot(…);
figure(4);
plot(…);
FIGURE图像大小设置
matlab的图像操作——输出图像尺寸大小、坐标轴等各项设置
个人经验
第一步,点编辑,随便点一个进入图像编辑状态,例如坐标区
第二步说明:选中图的边框。