matlab求解带参数的复杂函数

参数为α,c,d,根据下面方程求θ的值
α=90°
c=20-100
d=50-80

img

楼主用fzero函数代入某些特定的c和d求出几个特殊解,
现在想根据c,d在范围内随机取值,得到θ关于c,d变化的曲线

  • 这篇博客: Matlab数值微积分与方程求解中的 4.1.1 fzero函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述
    x0x_0x0是初始值
    在这里插入图片描述

    %1f(x)=0在x0=-5和x0=1作为迭代初值时的根。
    f=@(x) x-1./x+5;
    x1=fzero(f,-5)
     
    x2=fzero(f,1)
     
    x3=fzero(f,0.1) 
    

    求得:

    x1 =-5.1926
    x2 =0.1926
    x3 =3.7372e-16
    

    显然,x3不是方程的根,所以在使用fzero函数时,初值的选取非常关键。
    作出曲线图,观察根的分布位置:

    figure,
    fplot(@(x) x-1./x+5,[-6,1])
    hold on
    scatter (x1,0)
    scatter(x2,0)
    text(x1+0.1,1.25,'x_1')
    text(x2+0.1,1.25,'x_2')
    grid on
    

    在这里插入图片描述
    我们也可以使用fsolve来求方程的根: