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
③在命令窗口输入
% 设置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
% 设置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
解:(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)无解.
还是正常编写啊
用solve函数求解就行
syms声明未知变量,然后写等式