强力求解强力 三角函数数方程。。。急啊~~~~~~~~~~

查看: 1778|回复: 21
解四元三角函数方程组,怎么快速求解
大家好,以下是我写的一个解方程组代码,但是感觉计算好慢。网上查到说用矩阵表示更快速一些,是吗?&&请问怎么修改,我不会用矩阵表示。式中的L都是已知量,k1,k2,k3,k4就是需要求解的角度
f1=lhl*sin(k1)-loi-lij*sin(k2)+llk*sin(k3)-lkj*sin(k4)+
f2=lij*cos(k2)+lkj*cos(k4)+lom-lhl*cos(k1)-llk*cos(k3);
f3=lij*cos(k2)+lpj*cos(k4)-
f4=(yp^2+zp^2)^0.5-loi-lij*sin(k2)-lpj*sin(k4);
[k01,k02,k03,k04]=solve(f1,f2,f3,f4);
xp,yp,zp也都是已知量
你求的是数值解,还是符号解?如果是数值解,请先给出其他变量的数值
winner245 发表于
你求的是数值解,还是符号解?如果是数值解,请先给出其他变量的数值
哦&&求数值解& & 我发一个数值的程序代码
f1=300*sin(k1)-140-550*sin(k2)+566*sin(k3)-130*sin(k4)+
f2=550*cos(k2)+130*cos(k4)+230-300*cos(k1)-566*cos(k3);
f3=550*cos(k2)+410*cos(k4)-
f4=(yp^2+zp^2)^0.5-140-550*sin(k2)-410*sin(k4);
[k01,k02,k03,k04]=solve(f1,f2,f3,f4);
FANGYANG 发表于
哦&&求数值解& & 我发一个数值的程序代码
f1=300*sin(k1)-140-550*sin(k2)+566*sin(k3)-130*sin(k4)+ ...
xp=300,yp=-150,zp=-900
FANGYANG 发表于
xp=300,yp=-150,zp=-900
如果你觉得求解速度慢,你还可以试试fsolve,因为这是纯数值求解,你只需要把f1 f2 f3 f4定义为函数句柄
winner245 发表于
不好意思,有点仓促啊&&,马上发你个
f1=300*sin(k1)-140-550*sin(k2)+566*sin(k3)-130*sin(k4)+90;
f2=550*cos(k2)+130*cos(k4)+230-300*cos(k1)-566*cos(k3);
f3=550*cos(k2)+410*cos(k4)-200;
f4=((-150)^2+(-900)^2)^0.5-140-550*sin(k2)-410*sin(k4);
[k01,k02,k03,k04]=solve(f1,f2,f3,f4);
xp yp zp 是循环取值的,xp=-00:70:500,yp=-300:45:150,zp=-0。刚开始以为是三个for循环导致时间太长,后来发现我同学写的其他程序也是三个for,但他的只要2min就能搞定,我的1天都算不玩,觉得就是这一块太慢了
winner245 发表于
如果你觉得求解速度慢,你还可以试试fsolve,因为这是纯数值求解,你只需要把f1 f2 f3 f4定义为函数句柄 ...
不会做& &请问怎么定义为函数句柄
此回复为最佳答案|
FANGYANG 发表于
不好意思,有点仓促啊&&,马上发你个
f1=300*sin(k1)-140-550*sin(k2)+566*sin(k3)-130*sin(k4)+90;
这是我的运行结果:syms k1 k2 k3 k4
f1=300*sin(k1)-140-550*sin(k2)+566*sin(k3)-130*sin(k4)+90;
f2=550*cos(k2)+130*cos(k4)+230-300*cos(k1)-566*cos(k3);
f3=550*cos(k2)+410*cos(k4)-200;
f4=((-150)^2+(-900)^2)^0.5-140-550*sin(k2)-410*sin(k4);
tic
[k01,k02,k03,k04]=solve(f1,f2,f3,f4)
toc复制代码k01 =
Elapsed time is 6.882870 seconds.
另外,使用 fsolveF = @(k) [300*sin(k(1))-140-550*sin(k(2))+566*sin(k(3))-130*sin(k(4))+90;
& && && & 550*cos(k(2))+130*cos(k(4))+230-300*cos(k(1))-566*cos(k(3));
& && && & 550*cos(k(2))+410*cos(k(4))-200;
& && && & ((-150)^2+(-900)^2)^0.5-140-550*sin(k(2))-410*sin(k(4))];
k0 = [0 0 0 0];
tic
k = fsolve(F,k0)
toc复制代码k =
& & 0.3367& & 1.8155& & 1.7140& & 0.6217
Elapsed time is 0.162263 seconds.
Powered by已有天涯账号?
这里是所提的问题,您需要登录才能参与回答。
"天涯问答"是天涯社区旗下的问题分享平台。在这里您可以提问,回答感兴趣的问题,分享知识和经历,无论您在何时何地上线都可以访问,此平台完全免费,而且注册非常简单。
如何在matlab下求解三角函数方程?
如何在matlab下求解三角函数方程?
09-12-24 & 发布
%%下面方法比较笨,但是可行。%%先看一下为什么你解不出来%%把你的k*1.57e-6看成一个整体x%%变成求解tan(x)./x-1/0.2159==0x=-2:0.0001:2;y=tan(x)./x-1/0.2159;plot(x,y,x,zeros(size(x)))title('[-2,2]')figurex=-1.5:0.;y=tan(x)./x-1/0.2159;plot(x,y,x,zeros(size(x)))title('[-1.5,1.5]')%%从上面两张图可以看出%%第一幅图中由于存在-1.57(-pi/2)时,tan变成无穷大%%这里精确解我也不知道怎么取到就是了。%%不过放大第二幅图(放大那个交点),解应当在-1.420到-1.419之间figurex=-1.420:0..419;y=tan(x)./x-1/0.2159;plot(x,y,x,zeros(size(x)))for i=1:length(x)-1 if (y(i)*y(i+1)&0)   endendvpa(x(i),10)得到结果为-1.对称性还可以得到1.你可以逐步求精,上面只是取到小数点后7位,你还可以再往下做,效率不是很高就是了。当然上面得到的是x你的k应当是k=x(i)/1.57e-6;vpa(k,10)tan(k*(1.57E-6))./(k*(1.57E-6))-1/0.2159另外-pi/2以外的区域,还有根,你可以类同地处理。
请登录后再发表评论!
%%下面方法比较笨,但是可行。%%先看一下为什么你解不出来%%把你的k*1.57e-6看成一个整体x%%变成求解tan(x)./x-1/0.2159==0x=-2:0.0001:2;y=tan(x)./x-1/0.2159;plot(x,y,x,zeros(size(x)))title('[-2,2]')figurex=-1.5:0.;y=tan(x)./x-1/0.2159;plot(x,y,x,zeros(size(x)))title('[-1.5,1.5]')%%从上面两张图可以看出%%第一幅图中由于存在-1.57(-pi/2)时,tan变成无穷大%%这里精确解我也不知道怎么取到就是了。%%不过放大第二幅图(放大那个交点),解应当在-1.420到-1.419之间figurex=-1.420:0..419;y=tan(x)./x-1/0.2159;plot(x,y,x,zeros(size(x)))for i=1:length(x)-1 if (y(i)*y(i+1)&0)   endendvpa(x(i),10)得到结果为-1.对称性还可以得到1.你可以逐步求精,上面只是取到小数点后7位,你还可以再往下做,效率不是很高就是了。当然上面得到的是x你的k应当是k=x(i)/1.57e-6;vpa(k,10)tan(k*(1.57E-6))./(k*(1.57E-6))-1/0.2159另外-pi/2以外的区域,还有根,你可以类同地处理。
请登录后再发表评论!您的位置: &
非线性方程求解的三角函数变换法
摘 要:利用Jacobi椭圆函数和三角函数的转换关系得到了一种求解非线性方程精确解的方法——三角函数变换法,并将它应用于求解两个重要的非线性方程——KDV方程和变形Boussinesq方程组,得到它们的周期解和孤立波解.如何用MATLAB求反三角函数方程
如何用MATLAB求反三角函数方程
方程:arctan(0.2*w)+arctan(0.02*w)=90°我想请大家帮帮忙,这个方程如何能在MATLAB里求出w的值啊?谢谢了!~
&&symsw&&solve('arctan(0.2*w)+arctan(0.02*w)=pi/2')
等待您来回答
学习帮助领域专家
当前分类官方群专业解答学科习题,随时随地的答疑辅导}

我要回帖

更多关于 强力 三角函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信