2016-10-17 4 views
1

Например, У меня естьКак создать, решить и построить условную функцию в MATLAB

f(x)= 
    9+4(x+3), if -4<=x<-1 (subf1) 
    7-9(x-0.4), if -1<=x<1 (subf2) 

Как я могу создать функцию F (X) в MATLAB? Я попытался

f=0 
syms x 
f=f+ subf1 with heaviside+ subf2 with heaviside 

Но я не могу дать v решить f(v) и я не могу построить f(x) только -4 к 1. Так есть ли другой способ написать условную функцию?

Извините, мое описание немного сложно понять. Если вы не понимаете, о чем я прошу, сообщите мне, и я попытаюсь перефразировать. Спасибо!

ответ

0

Зависит от того, что вы хотите с этим сделать. Если по какой-то причине вам нужно символический, вот один из способов написать свой symbolic function:

syms x 
f1 = (9 + 4 * (x + 3)) * heaviside(x + 4) * (1 - heaviside(x + 1)); 
f2 = (7 - 9 * (x - 0.4)) * heaviside(x + 1) * (1 - heaviside(x - 1)); 
f = symfun(f1 + f2, x); 

В противном случае, вы можете write your function in a file как:

function out = f(x) 
out = (9 + 4 * (x + 3))*(x>=-4)*(x<-1) + (7 - 9 * (x - 0.4))*(x>=-1)*(x<1); 

Или вы можете определить его как anonymous function:

f = @(x) (9 + 4 * (x + 3))*(x>=-4)*(x<-1) + (7 - 9 * (x - 0.4))*(x>=-1)*(x<1); 

Затем вы можете построить любую из функций, используя, например, fplot:

fplot(f, [-4, 1]) 
Смежные вопросы