xzy_28855 发表于 2006-8-17 08:45

用matlab求解一个方程组的所遇到的困难!

我有这样一个方程组:
26sin(150-b)+40sin(d)-26sin(a-30)-40sin(c)=11
40cos(a)+40cos(b)=16.5
26cos(a-30)=40cos(c)
26cos(150-b)=40cos(d)
其中,150和30的单位都是度,求角度a,b,c,d。
我知道matlab可以求解方程组,而且这个方程组可以化成一个关于cos(a),cos(b),cos(c),cos(d)矩阵的形式来求解,但是我化了一下,发现如果化成上述的矩阵形式的话,方程组中就会存在根号的形式,如果是根号的形式,系数矩阵就不太好写,所以我在这里想请教各位大侠,还有没有更好的解决该方程组的方法,如果有的话,请不吝赐教,小弟不胜感激!
另外,我是刚接触matlab,只学了几条以后需要用的命令,我只是用matlab来画图和结方程组就够了,没有时间进行深入研究,所以在这里麻烦各位专门学matlab的高手看看该怎么做?

chenhua835 发表于 2006-8-17 09:01

八个未知数,八个方程不是很好嘛
把二次项也视为未知数

chenhua835 发表于 2006-8-17 09:22

还有,或者使用下面的建议

对于求解非线性方程组一般用fsolve命令就可以了

dingd 发表于 2006-8-17 09:42

用1stOpt吧,几乎不用学习,代码与你的原表达式基本一样:
********************
Function
26*sin(150-b)+40*sin(d)-26*sin(a-30)-40*sin(c)=11;
40*cos(a)+40*cos(b)=16.5;
26*cos(a-30)=40*cos(c);
26*cos(150-b)=40*cos(d);
********************

结果有多组:
b: -0.920193126351287
d: 0.869734284262717
a: 4.51800057661053
c: 0.913779515267566

b: -1.23686661507941
d: -0.942246377554325
a: 11.0804178502774
c: 5.41787900085544

xzy_28855 发表于 2006-8-17 10:54

大侠,我没学过matlab,所以你说的我不是很明白,能不能在说的详细一点啊?要不我加你吧,咱们在qq里聊,我的qq是514615715

happy 发表于 2006-8-17 18:08

同意3楼的看法,先用fsolve试一下,具体怎么用这个函数你可以用doc fsolve看帮助,里边还有例子

xzy_28855 发表于 2006-8-18 09:29

//Parameters a,b,c,d;
//Variable p=3.1415926;
//Function 26*sin((5*p/6)-b)+40*sin(d)-26sin(a-(p/6))-40*sin(c)=11;
         40*cos(a)+40*coa(b)=16.5;
         26*cos(a-(p/6))-40*cos(c)=0;
         26*cos((5*p/6)-b)-40*cos(d)=0;
大侠,这是我用1stopt软件在他的窗口中输入的内容,但是我执行计算的时候,他就显示常数定义有问题,这是什么意思啊?我觉得没错啊?麻烦帮我看看是哪儿出了问题了啊?谢谢!

dingd 发表于 2006-8-18 12:58

定义常数用“Constant”,“Variable”是用来定义变量的(拟合时用)。另外,3.1415926可直接用pi来表示。

xzy_28855 发表于 2006-8-18 15:14

谢谢各位大侠的帮忙,小弟还有一个问题就是这个软件默认的是角度单位是度还是弧度啊?

happy 发表于 2006-8-18 15:14

原帖由 xzy_28855 于 2006-8-18 15:14 发表
谢谢各位大侠的帮忙,小弟还有一个问题就是这个软件默认的是角度单位是度还是弧度啊?

弧度

xzy_28855 发表于 2006-8-18 15:19

不知道大侠是否有免注册版的啊?我下载的软件是不用注册,但是不注册许多功能都无权使用了,就连最简单的复制功能都没有,更别提保存文件了,大侠能给提供吗?

xzy_28855 发表于 2006-8-18 15:30

非常感谢各位大侠的帮忙!十分感谢!

heven-guo 发表于 2006-8-21 15:48

还是好人多

zzbygq 发表于 2006-8-21 18:13

请教:solve函数为何不能用?

happy 发表于 2006-8-23 21:26

原帖由 zzbygq 于 2006-8-21 18:13 发表
请教:solve函数为何不能用?


solve求解非线性代数方程的能力非常有限
页: [1] 2
查看完整版本: 用matlab求解一个方程组的所遇到的困难!