24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3697  |  回复: 10

cyclonelee

至尊木虫 (著名写手)

[求助] 三元二次的三角方程如何用MATLAB求解??

三个方程如下:

r1=(-k*sin(a)*sin(b)+z*tan(b)+m)^2+(z-k*sin(a)*cos(b))^2
r2=(-k*sin(a)*sin(b)+z*tan(b)-m)^2+(z-k*sin(a)*cos(b))^2
r3=(k*sin(a)*sin(b)+z*tan(b))^2+(2*k*cos(a)-n)^2+(k*sin(a)*cos(b)+z)^2

a,b,z 为待求未知量,其余为已知量

求高手帮忙!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

既然认准一条道路,何必去打听要走多久。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

你要解析解么
如果要数值解的话,为什么不把已知量给出呢
2楼2013-08-22 18:44:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cyclonelee

至尊木虫 (著名写手)

引用回帖:
2楼: Originally posted by 信彼南山 at 2013-08-22 18:44:10
你要解析解么
如果要数值解的话,为什么不把已知量给出呢

已知量其实可以任取的,如:
r1=120 r2=110 r3=100
m=40 n=30 k=10
既然认准一条道路,何必去打听要走多久。
3楼2013-08-22 22:06:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

星月夜dh

金虫 (小有名气)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
cyclonelee: 金币+2, 有帮助, 多谢! 2013-08-22 23:02:34
xiegangmai: 金币+1, 谢谢参与! 2013-08-25 00:39:32
这个有些类似于公式推倒的样子,相当于一种符号计算,最近在一本书上正好看到过,找一本软件学习的书吧,上面应该都会有的。。。
4楼2013-08-22 22:45:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
cyclonelee: 金币+8, ★★★★★最佳答案, 非常感谢!!!!我先试试去!多谢 2013-08-22 23:03:28
xiegangmai: 金币+1, 谢谢参与! 2013-08-25 00:39:37
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
5楼2013-08-22 22:48:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cyclonelee

至尊木虫 (著名写手)

引用回帖:
4楼: Originally posted by 星月夜dh at 2013-08-22 22:45:13
这个有些类似于公式推倒的样子,相当于一种符号计算,最近在一本书上正好看到过,找一本软件学习的书吧,上面应该都会有的。。。

能否告知书名
既然认准一条道路,何必去打听要走多久。
6楼2013-08-22 22:55:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cyclonelee

至尊木虫 (著名写手)

引用回帖:
5楼: Originally posted by 月只蓝 at 2013-08-22 22:48:47
数值解可参考:
http://muchong.com/bbs/viewthread.php?tid=6150808&authorid=1122189

试做了一下:
程序如下:

function solvenonl
clear all;clc
x0=100*[1 1 1];
x=fsolve(@nonl,x0)


function f=nonl(x)
a=x(1);
b=x(2);
z=x(3);
r1=120;
r2=110;
r3=90;
m=40;
n=30;
k=10;
f(1)=(-k*sin(a)*sin(b)+z*tan(b)+m)^2+(z-k*sin(a)*cos(b))^2-r1;
f(2)=(-k*sin(a)*sin(b)+z*tan(b)-m)^2+(z-k*sin(a)*cos(b))^2-r2;
f(3)=(k*sin(a)*sin(b)+z*tan(b))^2+(2*k*cos(a)-n)^2+(k*sin(a)*cos(b)+z)^2-r3;

结果:

Solver stopped prematurely.

fsolve stopped because it exceeded the function evaluation limit,
options.MaxFunEvals = 300 (the default value).


x =

  101.4392  100.5481   98.0448

问下,为什么只有一组解,要是想保留多组解该怎么处理?
上面的英文是不是说明结果太多,溢出了?
既然认准一条道路,何必去打听要走多久。
7楼2013-08-22 23:24:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

星月夜dh

金虫 (小有名气)

引用回帖:
6楼: Originally posted by cyclonelee at 2013-08-22 22:55:28
能否告知书名...

额。。。前段时间看的,叫什么Matlab有入门到精通还是啥的,具体忘了,好多书上都有这方面的内容的,你找到书后可以先看看目录的啊。。。
8楼2013-08-22 23:36:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
cyclonelee: 金币+5, ★★★很有帮助, 多谢! 2013-08-23 09:19:47
xiegangmai: 金币+2, 谢谢参与! 2013-08-25 00:39:47
引用回帖:
7楼: Originally posted by cyclonelee at 2013-08-22 23:24:37
试做了一下:
程序如下:

function solvenonl
clear all;clc
x0=100*;
x=fsolve(@nonl,x0)


function f=nonl(x)
a=x(1);
b=x(2);
z=x(3);
r1=120;
r2=110;
r3=90;
m=40;
n=30;
k=10;
f(1)=(- ...

第三行
x0=100*[1 1 1]; 这里,你先给未知数一个大概的初值,原来这里的x0只适合那个帖子中的情形。
初值肯定得调的,而且初值给在不同的数值区间,多组解也能算出来。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
9楼2013-08-22 23:47:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cyclonelee

至尊木虫 (著名写手)

引用回帖:
9楼: Originally posted by 月只蓝 at 2013-08-22 23:47:58
第三行
x0=100*; 这里,你先给未知数一个大概的初值,原来这里的x0只适合那个帖子中的情形。
初值肯定得调的,而且初值给在不同的数值区间,多组解也能算出来。...

第三行初值的问题我明白了!
但是多组解还是没有搞懂!我这个求解的是三角函数中的角度值,是不是可以这样理解,在0~2PI设置不同的初值来获得不同的解?但是,初值的选取怎么选呢?如何可以选择到所有合理的初值我还是没想出来,望解答!多谢,辛苦了!
既然认准一条道路,何必去打听要走多久。
10楼2013-08-23 09:23:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cyclonelee 的主题更新
信息提示
请填处理意见