使用MATLAB求解三变量隐函数

时间:2014-03-14 18:20:58

标签: matlab

我想在MATLAB中从函数tan(n * theta1)+ tan(n * theta2)+ tan(n * thetas)= 0绘制n vs theta1;其中n,theta1和theta2是变量,并给出了t。任何人都可以指点如何做到这一点吗?

我尝试过使用ezplot。它不起作用。

接下来,我使用了这段代码,

c = 1;
thetas = pi/4;
for n = 1.01:0.01:3.50
    for theta1 = pi/2 : 0.01 : 5*pi/6
        for theta2 = 0: 0.01: pi/2
            if(tan(n*theta1) + tan(n*theta2) + tan(n*thetas) >= -0.0001 && tan(n*theta1) + tan(n*theta2) + tan(n*thetas) <= 0.0001 && (n*theta1) ~= pi/2 ...
                    && (n*theta2) ~= pi/2 && (n*thetas) ~= pi/2)
                ns(c) = n;
                theta1s(c) = theta1;
                theta2s(c) = theta2;
                c = c + 1;
            end
        end
    end
end

我尝试使用plot命令绘制结果。也没有成功。对于每个给定的θ值,大多数情节应该是三条不同的曲线。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这样的事可能有用吗? -

%%// Data (Random numbers)
thetas_array = [2 4 6]; %// Put different thetas here
theta2 = 2:2:20;
n = 1:10;

figure,
for k = 1:numel(thetas_array)

    thetas = thetas_array(k);

    %%// Since tan(n*theta1) + tan(n*theta2) + tan(n*thetas)= 0;
    theta1 =  (1./n).*atan(- tan(n.*theta2) - tan(n.*thetas));

    subplot(3,1,k), plot(n,theta1), xlabel('n'), ylabel(strcat('theta1 [thetas = ',num2str(thetas),']'));
end

<强>输出

enter image description here