matlab非线性方程例题,利用solve函数求解非线性方程组的问题

本帖最后由 FlashLL 于 2018-11-2 21:52 编辑

syms gama theta R1 Dr Rr t1 t2 belta alpha r

a1 = cos(gama/2 - theta) * cos(pi/4);

a2 = -sin(gama/2 - theta);

a3 = -R1 * sin(gama/2 - theta) * cos(gama/2);

a4 = cos(gama/2 - theta) * sin(pi/4);

b1 = sin(gama/2 - theta) * cos(pi/4);

b2 = cos(gama/2 - theta);

b3 = R1 * cos(gama/2 - theta) * cos(gama/2);

b4 = sin(gama/2 - theta) * sin(pi/4);

x1 = a1 * t1 + a2 * r *cos(alpha) + a3 + a4 * r * sin(alpha);

y1 = b1 * t1 + b2 * r *cos(alpha) + b3 + b4 * r * sin(alpha);

z1 = -sin(pi/4) * t1 + r * cos(pi/4) * sin(alpha);

x2 = t2;

y2 = Rr * cos(belta) + Dr;

z2 = Rr * sin(belta);

[t1,t2,alpha,belta,r] = solve(x1,x2,x1 - x2,y1 - y2,z1 - z2,'t1','t2','alpha','belta','r');

x1,y1,z1以及x2,y2,z2 分别是两个参数方程,我想将两个参数方程对应相等,利用solve函数求得解析解。

但是程序报错,错误提示如下,主要是说四个等式求解六个未知数,这个让我不明白是什么原因。

具体错误如下:

警告: 4 equations in 6 variables. New variables might be introduced.

> In C:\matlab\R2014a\toolbox\symbolic\symbolic\symengine.p>symengine at 56

In mupadengine.mupadengine>mupadengine.evalin at 97

In mupadengine.mupadengine>mupadengine.feval at 150

In solve at 170

In jiefangcheng1102 at 16

错误使用 mupadengine/feval (line 157)

MuPAD error: Error: Duplicate entry in list of variables to solve for. [solve]

出错 solve (line 170)

sol = eng.feval('symobj::solvefull',eqns,vars);

出错 jiefangcheng1102 (line 16)

[t1,t2,alpha,belta,r] = solve(x1,x2,x1 - x2,y1 - y2,z1 - z2,'t1','t2','alpha','belta','r');

请问各位大佬,出错是因为我的方程无法求解还是因为程序有问题,希望您能说的详细些,我的基础不好,谢谢您的查看与回答!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值