左边先合并同类项,两边再取反正弦呗。结果注意加上一个2kpi(k为整数)。或者先画出y=018sinb+49sinb的图象,再用一个取坐标的指令,手动找出(b,26)的横坐标
在matlab中输入
>> L1=4;
>> L2=4;
>> EI1=05310^12;
>> EI2=007310^12;
>> syms lamda;
>> A=-(sinh(L1lamda)-sin(L1lamda)-L2lamda(cosh(L1lamda)-cos(L1lamda)))/(cosh(L1lamda)+cos(L1lamda)+L2lamda(sin(L1lamda)-sin(L1lamda)))
A =
(-sinh(4lamda)+sin(4lamda)+4lamda(cosh(4lamda)-cos(4lamda)))/(cosh(4lamda)+cos(4lamda))
y=EI1(cosh(L1lamda)+cos(L1lamda)+A(sinh(L1lamda)+sin(L1lamda)))(-164(cos(164L2lamda)/sin(164L2lamda)+cosh(164L2lamda)/sinh(164L2lamda)))+53792EI2(A(cosh(L1lamda)-cos(L1lamda))+sinh(L1lamda)+sin(L1lamda))
y =
(530000000000cosh(4lamda)+530000000000cos(4lamda)+530000000000(-sinh(4lamda)+sin(4lamda)+4lamda(cosh(4lamda)-cos(4lamda)))/(cosh(4lamda)+cos(4lamda))(sinh(4lamda)+sin(4lamda)))(-41/25cos(164/25lamda)/sin(164/25lamda)-41/25cosh(164/25lamda)/sinh(164/25lamda))+392681600000(-sinh(4lamda)+sin(4lamda)+4lamda(cosh(4lamda)-cos(4lamda)))/(cosh(4lamda)+cos(4lamda))(cosh(4lamda)-cos(4lamda))+392681600000sinh(4lamda)+392681600000sin(4lamda)
solve(y)
ans =
-22683621981532200097501890241426
你看这个和你会不会有出入
matlab怎么把两个三角函数求和的方法:S=sum(___,outtype)指定输出结果的数据类型。可选字符串参数为'double','default'和'native'。一般来说,默认是'default'。有时候我们对整数求和,想要结果输出为double类型,就可以用这个参数。
1、将solve()函数改用vpasolve()函数
2、增加一个语句,将x的弧度换算成x的度数,即
x=r180/314159
按上述更改后,运行得
x =093951792291988162586098861351023
%%下面方法比较笨,但是可行。
%%先看一下为什么你解不出来
%%把你的k157e-6看成一个整体x
%%变成求解tan(x)/x-1/02159==0
x=-2:00001:2;
y=tan(x)/x-1/02159;
plot(x,y,x,zeros(size(x)))
title('[-2,2]')
figure
x=-15:00001:15;
y=tan(x)/x-1/02159;
plot(x,y,x,zeros(size(x)))
title('[-15,15]')
%%从上面两张图可以看出
%%第一幅图中由于存在-157(-pi/2)时,tan变成无穷大
%%这里精确解我也不知道怎么取到就是了。
%%不过放大第二幅图(放大那个交点),解应当在-1420到-1419之间
figure
x=-1420:00000001:-1419;
y=tan(x)/x-1/02159;
plot(x,y,x,zeros(size(x)))
for i=1:length(x)-1
if (y(i)y(i+1)<0)
break;
end
end
vpa(x(i),10)
得到结果为
-1419899200
对称性还可以得到1419899200
你可以逐步求精,上面只是取到小数点后7位,你还可以再往下做,效率不是很高就是了。
当然上面得到的是x
你的k应当是
k=x(i)/157e-6;
vpa(k,10)
tan(k(157E-6))/(k(157E-6))-1/02159
另外-pi/2以外的区域,还有根,你可以类同地处理。
求解含有三角函数的非线性方程的方法:
1、对于简单的含有三角函数的非线性方程,可以用solve()函数求解。
solve('表达式')
2、较复杂的含有三角函数的非线性方程,可以用fsolve()函数求解。或用其他数值分析方法(如二分法,牛顿法等)求解。
func=@(x) 表达式 %自定义函数
fsolve(func,x0) %x0初值
可以,直接表达就好。
solve('tan(theta)=(Md^2(sin(beta))^2-1)/((Md^2((k+1)/2-(sin(beta))^2)+1)tan(beta))','beta')
将其中需要给定的值给定即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)