作业帮 > 综合 > 作业

用matlab求解超越方程

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 11:49:46
用matlab求解超越方程
我的方程是-0.17*cos(5.6*sqrt(a))*cos(0.47*sqrt(a))+0.163*sin(5.6*sqrt(a))*sin(0.47*sqrt(a))+0.119*sqrt(a)*sin(5.6*sqrt(a))*cos(0.47*sqrt(a))+0.104*sqrt(a)*cos(5.6*sqrt(a))*sin(0.47*sqrt(a))-(0.06*cos(5.6*sqrt(a))*sin(0.47*sqrt(a))+0.053*sin(5.6*sqrt(a))*cos(0.47*sqrt(a)))/sqrt(a)=0
这个方程有好多解,但是我编不来程序,编的程序就只有一个解,这个问题已经困扰了好久了~
这是有无穷个解的.如果你想要解的通项公式的话计算机是做不到的.不知道楼主要方程在什么范围内的解.楼主可以设方程左边的式子是关于a的函数,然后做出函数在楼主需要的范围内的图像,从图像观察函数零点的大概位置xa,然后使用fzero(f,xa),做函数图像 的程序如下
clear
f=@(a) -0.17*cos(5.6*sqrt(a))*cos(0.47*sqrt(a))+0.163*sin(5.6*sqrt(a))*sin(0.47*sqrt(a))+0.119*sqrt(a)*sin(5.6*sqrt(a))*cos(0.47*sqrt(a))+0.104*sqrt(a)*cos(5.6*sqrt(a))*sin(0.47*sqrt(a))-(0.06*cos(5.6*sqrt(a))*sin(0.47*sqrt(a))+0.053*sin(5.6*sqrt(a))*cos(0.47*sqrt(a)))/sqrt(a);
a=linspace(1,10);
fplot(f,[1,200])

再问: 你好,我是想要a 在1~100内的解,在1到100内应该是有限个的,然后能在电脑上出来解的值的那种,因为我后面要用这些数值,谢谢~~~
再答: clear f=@(a) -0.17*cos(5.6*sqrt(a))*cos(0.47*sqrt(a))+0.163*sin(5.6*sqrt(a))*sin(0.47*sqrt(a))+0.119*sqrt(a)*sin(5.6*sqrt(a))*cos(0.47*sqrt(a))+0.104*sqrt(a)*cos(5.6*sqrt(a))*sin(0.47*sqrt(a))-(0.06*cos(5.6*sqrt(a))*sin(0.47*sqrt(a))+0.053*sin(5.6*sqrt(a))*cos(0.47*sqrt(a)))/sqrt(a); t0=[]; t=1:0.1:100; for i=2:991 t1=t(i-1); t2=t(i); if((f(t1)*f(t2))