查看: 152|回复: 3|关注: 0

[已解决] 论坛内的各位大神好,小弟这里有一个matlab计算非线性二阶偏微分方程施加正弦激励的例子。运行报错如下,还希望各位大神可以帮忙看看,谢谢啦

[复制链接]

新手

7 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
function ceshiode
g = 9.8;% 重力加速度 m/s2
B = 1;% 块体半宽度 m
H = 2;% 块体半高度 m
R = sqrt(B^2 + H^2);% 块体质心到角点距离
p = sqrt(0.75 * g/R);% 块体频率
afa = atan(B/H);% 块体本身夹角大小
tspan = [0 20];% t的求解范围
cta0 = [0 p*tan(afa)];% 给角度和角速度的初值赋予

[t,x]=ode45(@odefun, tspan, cta0);
plot(t, x(:, 1))
legend('cta')
title('公式')
xlabel('t')
ylabel('cta')

   function cta = odefun(t, x)
     ap = 0:2*g*tan(afa):12*g*tan(afa);
     wp = 0:2*p:10*p;
     cta = zeros(2, 1);
     cta(1)=x(2);
     cta(2)=-p^2*(sin(afa*sign(x(1))-x(1))+ ap*sin(wp*t)*cos(afa*sign(x(1))-x(1))/g);
   end
end

报错如下:
>> ceshiode
错误使用  *
内部矩阵维度必须一致。


出错 ceshiode/odefun (line 23)
     cta(2)=-p^2*(sin(afa*sign(x(1))-x(1))+
     ap*sin(wp*t)*cos(afa*sign(x(1))-x(1))/g);


出错 odearguments (line 87)
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1} to yp0.


出错 ode45 (line 113)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs,
odeFcn, ...


出错 ceshiode (line 11)
[t,x]=ode45(@odefun, tspan, cta0);


还希望大家帮忙看看  新手小白在此谢过!




MATLAB 基础讨论
版块优秀回答者

中级

616 麦片

财富积分


5001500


0

主题

273

帖子

46

最佳答案
  • 关注者: 7
发表于 2019-11-14 09:16:50 | 显示全部楼层 |此回复为最佳答案
ap是1*7向量,wp是1*6向量所以在矩阵维度不一致。无法相乘,修改如下
function ceshiode
g = 9.8;% 重力加速度 m/s2
B = 1;% 块体半宽度 m
H = 2;% 块体半高度 m
R = sqrt(B^2 + H^2);% 块体质心到角点距离
p = sqrt(0.75 * g/R);% 块体频率
afa = atan(B/H);% 块体本身夹角大小
tspan = [0 20];% t的求解范围
cta0 = [0 p*tan(afa)];% 给角度和角速度的初值赋予

[t,x]=ode45(@odefun, tspan, cta0);
plot(t, x(:, 1))
legend('cta')
title('公式')
xlabel('t')
ylabel('cta')
  function cta = odefun(t, x)
     ap = 0:2*g*tan(afa):12*g*tan(afa);
     wp = 0:2*p:12*p;
     cta = zeros(2, 1);
     cta(1)=x(2);
    cta(2)=-p^2*(sin(afa*sign(x(1))-x(1))+ ap*(sin(wp*t))'*cos(afa.*sign(x(1))-x(1))/g);
  end
end
并出图如下
QQ图片20191114091540.png

新手

7 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 2019-11-14 12:10:13 | 显示全部楼层
20141303 发表于 2019-11-14 09:16
ap是1*7向量,wp是1*6向量所以在矩阵维度不一致。无法相乘,修改如下
function ceshiode
g = 9.8;% 重力加 ...

谢谢老哥的回复,

目前这个程序的主要目的是想进一步分析这么一个问题:
cta(2)=-p^2*(sin(afa*sign(x(1))-x(1))+ ap*(sin(wp*t))'*cos(afa.*sign(x(1))-x(1))/g);
对于加红的这一部分,想要施加一个ricker小波分析函数,然后其中的ap和wp的取值范围就如同上文所写,最终要绘制的图形是在微分方程的解为定值情况下的ap与wp的关系图示。请问您有什么编写的思路么,还请您给予一定的指导,小弟在此谢谢啦:loveliness: :loveliness:

最终它的图形是一个类似于这样的图:其中,ug二阶导就是红色的那一部分的关系表达式,只是ap与wp是两个变化的量,这里不知道该如何编写了,还望您可以指点迷津,谢谢啦!
捕获2.JPG

MATLAB 基础讨论
版块优秀回答者

中级

616 麦片

财富积分


5001500


0

主题

273

帖子

46

最佳答案
  • 关注者: 7
发表于 2019-11-14 15:25:03 | 显示全部楼层
qwerty0228 发表于 2019-11-14 12:10
谢谢老哥的回复,

目前这个程序的主要目的是想进一步分析这么一个问题:

很抱歉,这个没有思路
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表