2013-04-23 6 views

ответ

1

Простой способ:

сначала определить вашу функцию с обработчиком, что-то вроде этого:

a = 1; 
b = 3; 
fh = @(x,y) (a*x.^2 + b*y.^2 - 1); 

Тогда легко использовать EZplot с функцией:

ezplot(fh) 
axis equal 

Если у вас есть различные значения a и b, вы можете использовать их в цикле (или с использованием векторизованного вычисления) и подавать их в свою функцию, затем строить график, а после использования графика использовать команду «удерживать» для сохранения предыдущий участок примерно такой:

for i=1:n 
    fh = @(x,y) (a(i)*x.^2 + b(i)*y.^2 - 1); 
    ezplot(fh); 
    hold on 
end 

Все.

+0

Я думаю, что OP означает больше для переменных 'a' и' b', а не только для одного значения из них. – fpe

0

Вот один из способов использовать несколько значений для a и b: определить свою функцию отдельно и использовать функциональные ручки и анонимную функцию для изменения a и b. Вы можете определить неявную функцию в виде двух отдельных функций:

function y = someFun(x,a,b) 

y = sqrt((1-a.*x.^2)./b); 

function y = someFun2(x,a,b) 

y = - sqrt((1-a.*x.^2)./b); 

Затем вызовите ezplot на анонимной функции с использованием a и b.

clear all 
close all 
figure 
hold on 
for a = 1:5 
    for b = 1:5 
     ezplot(@(x)someFun2(x,a,b)); 
     ezplot(@(x)someFun(x,a,b)); 
    end 
end 

axis([-1,1,-1,1]) 

ezplot сбрасывает ось, поэтому вам нужно будет установить их самостоятельно после его вызова.