查看: 510|回复: 8|关注: 0

[已答复] 已知三角函数点坐标、积分值,vpasolve求解方程组,显示empty sym 0-by-1

[复制链接]

新手

31 麦片

财富积分


050


2

主题

15

帖子

1

最佳答案
发表于 2020-6-16 09:53:48 | 显示全部楼层 |阅读模式
本帖最后由 qqqqqZhang 于 2020-6-16 09:57 编辑

初学matlab,一步一难点,真·新人又来求助了。

现在已知条件是,一条曲线,图中蓝色的那条;左右端点的坐标(-25.4,330)和(25.4,330);曲线在[-25.4,25.4]上的平均值是480.
红色的那条是我按抛物线计算出来的,实际上蓝色曲线应该是正弦函数的曲线。

我的数学描述,
y(x)=asin(bx+pi/2)+c;
区间[-25.4,25.4]在函数的一个周期内,即2pi/b>50.8;
y(-25.4)=330、y(25.4)=330、∫y(x)dx=480*50.8;

我的程序,也是多谢论坛大佬指点。
clear clc
syms a b c x
assume(b>0 & b<pi/25.4);
y(x)=a*sin(b*x+pi/2)+c;
eq1=y(25.4)==330;
eq2=y(-25.4)==330;
eq3=int(y,x,-25.4,25.4)==24384;
[o1,o2,o3]=vpasolve(eq1,eq2,eq3,[a,b,c],[-inf inf;0 pi/25.4;-inf inf])

其中加粗部分是我试图对周期加一个限定条件。
不加这两个条件的时候,方程组有解,
o1 =-158.37701455824539573565291099248
o2 =-438.8206278375811911817007055861
o3 =479.99543879203003023124518158125
但明显和曲线不能相吻合。

只加入assume(b>0 & b<pi/25.4),方程有解,解同上。

只加入[-inf inf;0 pi/25.4;-inf inf],方程无解,o1o2o3均显示empty sym: 0-by-1。

之前提问有大佬有1stopt解出来多解,其中一个是
a=451.270639;b=0.040668;c=92.553992比较符合原曲线。

想请教下各位前辈大佬,在matlab中,想给方程组加限制条件,b取值在(0,pi/25.4),应该怎么操作?
我的这个程序,怎样修改可以得到对应的正确的解啊?

蓝色是原曲线,红色按抛物线解出来的

蓝色是原曲线,红色按抛物线解出来的
回复主题 已获打赏: 0 积分

举报

新手

31 麦片

财富积分


050


2

主题

15

帖子

1

最佳答案
 楼主| 发表于 2020-6-16 12:15:14 | 显示全部楼层
人工置顶一下,求大佬们不吝赐教
回复此楼 已获打赏: 0 积分

举报

新手

31 麦片

财富积分


050


2

主题

15

帖子

1

最佳答案
 楼主| 发表于 2020-6-16 21:41:46 | 显示全部楼层
我再人工顶一下,先谢谢各位大佬了
回复此楼 已获打赏: 0 积分

举报

新手

31 麦片

财富积分


050


2

主题

15

帖子

1

最佳答案
 楼主| 发表于 2020-6-18 08:05:06 | 显示全部楼层
或者哪位大佬能指点一下换个求解方法也可以:handshake
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

权威

4382 麦片

财富积分



4

主题

4420

帖子

945

最佳答案
  • 关注者: 214
发表于 2020-6-18 09:32:44 | 显示全部楼层
本帖最后由 maple1314168 于 2020-6-18 10:08 编辑
qqqqqZhang 发表于 2020-6-18 08:05
或者哪位大佬能指点一下换个求解方法也可以

看了你的两个贴,都有出入。25 与 25.4  23500与24384,pi/25.4 与pi/50
怎么搞的!
在你的约束里面应该没有“真正”(误差很少)的根。
近似的根非常多!

281.9584934284060
0.0549917628778
281.1866387380089





回复此楼 已获打赏: 0 积分

举报

新手

31 麦片

财富积分


050


2

主题

15

帖子

1

最佳答案
 楼主| 发表于 2020-6-19 16:05:10 | 显示全部楼层
maple1314168 发表于 2020-6-18 09:32
看了你的两个贴,都有出入。25 与 25.4  23500与24384,pi/25.4 与pi/50
怎么搞的!
在你的约束里面应该没 ...

非常感谢您的回复!
我之前有点偷懒,就写的是粗略的条件,后面自己写程序要计算,就代入的精确的数据,之前的帖子不太严谨请见谅。
准确的数据是这个帖子里的。

您给出的这组解是在matlab里获得的么?想跟您请教一下具体的方法,还希望您能不吝赐教。谢谢!
回复此楼 已获打赏: 0 积分

举报

新手

31 麦片

财富积分


050


2

主题

15

帖子

1

最佳答案
 楼主| 发表于 2020-6-21 13:11:40 | 显示全部楼层
我用assume定义了b的范围似乎没有效果;
约束解的范围“[-inf inf;0 pi/25.4;-inf inf]”会导致方程组无解。

哪位大佬可以指点一下
方程的约束条件“区间[-25.4,25.4]在函数的一个周期内,即2pi/b>50.8”应该怎么在matlab里表达出来?
回复此楼 已获打赏: 0 积分

举报

新手

31 麦片

财富积分


050


2

主题

15

帖子

1

最佳答案
 楼主| 发表于 2020-6-22 21:42:09 | 显示全部楼层
好像是vpasolve会无视assume的约束。
Suppose you need only real solutions of this equation. You cannot use assumptions on variables because vpasolve ignores them.
回复此楼 已获打赏: 0 积分

举报

新手

31 麦片

财富积分


050


2

主题

15

帖子

1

最佳答案
 楼主| 发表于 2020-6-24 09:01:46 | 显示全部楼层
@maple1314168
大佬,还是想请教一下您的解是怎么获得的,我也找了很多方法,都得不到b在[0,pi/25.4]区间内的解。
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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