MATLAB解带三角函数的方程组,如何编程

编程解 L1sin(x)+L2cos(y)=H
L1cos (x) +L2sin(y)=D
L1 L2 H D 为常量,求解x ,y

1、对于简单的三角方程,可以用solve()来求解,得到解析解。如

其求解代码和结果为

2、对于复杂的三角方程,可以用Broyden(拟牛顿法)等方法来求解,得到数值解。如

其求解过程如下

①建立自定义函数文件,funm。m

function y = funm(x)

%x=x(1,1),y=x(2,1)

y(1,1) = x(1,1) - 0.7 * sin(x(1,1)) - 0.2 * cos(x(2,1)); 
y(2,1) = x(2,1) - 0.7 * cos(x(1,1)) + 0.2 * sin(x(2,1));

end

②编写Broyden文件,Broyden。m

③在命令窗口输入

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-11
% 设置4个常数
l1 = 1;
l2 = 2;
h = 1;
d = 2;

% 求解方程组
syms x y;
r = solve( l1 * sin( x ) + l2 * cos( y ) == h, ...
l1 * cos( x ) + l2 * sin( y ) == d );
得到两个解:

r =

x: [2x1 sym]
y: [2x1 sym]

>> r.x

ans =

pi/2
-2*atan(1/3)

>> r.y

ans =

pi/2
2*atan(1/3)
将x的第二个解转为小数,保留10位有效数字:

>> vpa( r.x( 2 ), 10 )

ans =

-0.6435011088
第2个回答  2015-06-23
% 设置4个常数
l1 = 1;
l2 = 2;
h = 1;
d = 2;

% 求解方程组
syms x y;
r = solve( l1 * sin( x ) + l2 * cos( y ) == h, ...
l1 * cos( x ) + l2 * sin( y ) == d );
得到两个解:

r =

x: [2x1 sym]
y: [2x1 sym]

>> r.x

ans =

pi/2
-2*atan(1/3)

>> r.y

ans =

pi/2
2*atan(1/3)
将x的第二个解转为小数,保留10位有效数字:

>> vpa( r.x( 2 ), 10 )

ans =

-0.6435011088本回答被网友采纳
第3个回答  2015-09-27
解:(1)当a≠1时,方程(1)-(2)得:(a-1)x=a-1,解得:x=1,把x=1代入(2)得:y=0

所以方程组的解是:⎧⎪⎪⎨⎪⎪⎩x=1y=0;

(2)当a=1时,原方程组变成了一个二元一次方程,所以它的解有无数组;

(3)当a=1时,方程组为⎧⎪⎪⎨⎪⎪⎩x-y=1x-y=2,则有方程组无解.

故答案为:
(1)⎧⎪⎪⎨⎪⎪⎩x=1y=0; (2)有无数组解;(3)无解.
第4个回答  2015-06-23
还是正常编写啊
用solve函数求解就行
syms声明未知变量,然后写等式追问

出现了这种情况,我不太会用MATLAB,亲,帮帮忙哦

追答

这个意思就是没有数值解。
你的那些常量为什么不带入数据??

追问

我想得到关于x y 的求解公式,是不是用MATLAB解不出来

追答

不是所有方程都有解析解的。

相似回答