Matlab中非线性方程组相平面图的做法

2025-06-21 18:13:30
推荐回答(3个)
回答1:

fsolve是用迭代方法计算选定迭代初始点的解。
solve是一般的解方程和方程组,精度变化应该变化比较大;简单的方程(组),是精确解。
我记得solve的到好几组解吧。比如:
a
=
solve('a*u^2
+
v^2',
'u
-
v
=
1',
'a^2
-
5*a
+
6')
returns
a
=
a:
[4x1
sym]
u:
[4x1
sym]
v:
[4x1
sym]
where
a.a
=
[
2]
[
2]
[
3]
[
3]
a.u
=
[
1/3+1/3*i*2^(1/2)]
[
1/3-1/3*i*2^(1/2)]
[
1/4+1/4*i*3^(1/2)]
[
1/4-1/4*i*3^(1/2)]
a.v
=
[
-2/3+1/3*i*2^(1/2)]
[
-2/3-1/3*i*2^(1/2)]
[
-3/4+1/4*i*3^(1/2)]
[
-3/4-1/4*i*3^(1/2)]
把所有解都给出了。

回答2:

fxx.m

function xdot=fxx(t,x)
xdot(1)=-3*x(1)+4*x(2)^2-x(1)^3-0.5*x(1)*x(2);
xdot(2)=-2.1*x(2)+x(1)*x(2);
xdot=xdot';
-------------------
t0=0;tf=50;x0=[0;0.25];[t,x]=ode45('fxx',[t0,tf],x0);[t,x];plot(x(:,1),x(:,2));
-------------------
图:
http://hi.baidu.com/%D7%D4%D3%C9vs%CC%EC%CC%C3/album/item/eca9e011606c7c24b8127b47.html

回答3:

高维数组的转置使用permute函数
具体调用语法
B = permute(A,order)
按照向量order指定的顺序重排A的各维。B中元素和A中元素完全相同。但由于经过重新排列,在A、B访问同一个元素使用的下标就不一样了。order中的元素必须各不相同。

例子
>> A=rand(4,5,6);
>> size(A)

ans =

4 5 6

>> B = permute(A,[2 1 3]);
>> size(B)

ans =

5 4 6

原来A是4x5x6的矩阵
按照顺序[2 1 3]转置之后,原来的第一,第二维顺序改变
B的大小是5x4x6