24小时热门版块排行榜    

查看: 1041  |  回复: 3

jyypzfswty

新虫 (初入文坛)

[求助] 求怎么用matlab解这个方程已有2人参与

要解个方程,但我对matlab不熟,请各位大神帮写个程序代码?
       0.5sin(3.6x)cos(x)+3.6cos(3.6x)sin(x)=0   (x>0)
   有无穷多解,求100个正的解。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Op_liu

木虫 (正式写手)

【答案】应助回帖

求出来了,图
求怎么用matlab解这个方程



发自小木虫Android客户端
2楼2015-12-10 13:43:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Op_liu

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
jyypzfswty: 金币+15, ★★★★★最佳答案, 灰常感谢~ 2015-12-11 09:08:33
%%这是非线性方程求解,普通的solve无法求得准确的解,fsolve无法解得100个解;
%%我这里用的是数值解法,精确度在为10^(-4),可改变x来提高精确度,看个人需要;
%%思路:求出y=0.5*sin(3.6*x).*cos(x)+3.6*cos(3.6*x).*sin(x)=0的100个解X;
       %可画出其图像,很容易看出y会在解处变号!!!由此可筛选出解
x=0:0.0001:70;%间隔越小,精确度越高
y=0.5*sin(3.6*x).*cos(x)+3.6*cos(3.6*x).*sin(x);%函数
plot(x,y,'b')
hold on
n=1;
for i=1length(x)-1)
    if y(i)*y(i+1)<=0%如果小于0,知道此处y发生变号,那么此处对应的x即解
        X(n)=x(i);%将找到的解赋值给另一个矩阵
        n=n+1;
    end
end
X=X(2:101);%因为问题说前100个正解,不包括0

Y=0.5*sin(3.6*X).*cos(X)+3.6*cos(3.6*X).*sin(X);
plot(X,Y,'.r')%画出解的点
3楼2015-12-10 13:43:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
jyypzfswty: 金币+15, ★★★★★最佳答案, 牛人~~灰常感谢~ 2015-12-11 09:09:25
用MATLAB的fsolve函数也是可以做的。
代码如下:
CODE:
clear all;clc
[x fval]=fsolve(@(X) 0.5*sin(3.6*X).*cos(X)+3.6*cos(3.6*X).*sin(X),linspace(0,100,1000));
x=round(1e6*x)/1e6;
x_answer=unique(x)
figure(1)
X=linspace(0,100,1000);
yy=0.5*sin(3.6*X).*cos(X)+3.6*cos(3.6*X).*sin(X);
plot(X,yy,'b',[0 100],[0 0],'r')

找到了147个解,零点和多余的,请自行删除。
x_answer =

  Columns 1 through 15

         0    0.5047    1.3189    2.1562    2.9077    3.2761    3.9627    4.7964    5.6231    6.2228    6.6432    7.4348    8.2731    9.0648    9.4852

  Columns 16 through 30

   10.0848   10.9116   11.7453   12.4319   12.8003   13.5518   14.3890   15.2032   15.7080   16.2127   17.0269   17.8641   18.6157   18.9841   19.6707

  Columns 31 through 45

   20.5044   21.3311   21.9307   22.3511   23.1428   23.9811   24.7727   25.1932   25.7928   26.6195   27.4532   28.1398   28.5082   29.2598   30.0970

  Columns 46 through 60

   30.9112   31.4159   31.9207   32.7348   33.5721   34.3236   34.6920   35.3786   36.2123   37.0391   37.6387   38.0591   38.8507   39.6891   40.4807

  Columns 61 through 75

   40.9011   41.5008   42.3275   43.1612   43.8478   44.2162   44.9677   45.8050   46.6191   47.1239   47.6286   48.4428   49.2801   50.0316   50.4000

  Columns 76 through 90

   51.0866   51.9203   52.7470   53.3467   53.7671   54.5587   55.3970   56.1887   56.6091   57.2087   58.0354   58.8691   59.5558   59.9241   60.6757

  Columns 91 through 105

   61.5129   62.3271   62.8319   63.3366   64.1508   64.9880   65.7396   66.1080   66.7946   67.6283   68.4550   69.0546   69.4750   70.2667   71.1050

  Columns 106 through 120

   71.8966   72.3171   72.9167   73.7434   74.5771   75.2637   75.6321   76.3837   77.2209   78.0351   78.5398   79.0446   79.8587   80.6960   81.4475

  Columns 121 through 135

   81.8159   82.5025   83.3362   84.1630   84.7626   85.1830   85.9746   86.8130   87.6046   88.0250   88.6246   89.4514   90.2851   90.9717   91.3401

  Columns 136 through 147

   92.0916   92.9289   93.7430   94.2478   94.7525   95.5667   96.4039   97.1555   97.5239   98.2105   99.0442   99.8709
求怎么用matlab解这个方程-1
附图1.png

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2015-12-10 16:28:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jyypzfswty 的主题更新
信息提示
请填处理意见