導航:首頁 > 編程語言 > 寫程序分段函數的演算法

寫程序分段函數的演算法

發布時間:2025-07-14 01:34:00

『壹』 寫出求函數 的函數值的演算法,並畫出程序框圖。

解:該函數是分段函數,當x取不同范圍內的值時,函數解析式不同,因此當給出一個自變數x的值時,必須先判斷x 的范圍,然後確定利用哪一段的解析式求函數值,因為函數解析式分了三段,所以判斷框需要兩個,即進行兩次判斷, 於是,演算法如下:
第一步,輸入x;
第二步,如果x>0,那麼y=-1,否則如果x=0,那麼y= 0,否則y=1;
第三步,輸出函數值y。
程序框圖如圖所示:

『貳』 MATLAB求分段函數,怎麼寫代碼

怎樣用matlab來定義分段函數,首先要根據分段函數建立自定義函數,然後在命令窗口調用或其他程序里調用。

現舉例說明:

1、建立自定義函數文件,piecewise1.m

function y=piecewise1(t)

%分段函數

n=length(t); %計算所輸入t的個數

for i=1:n

if t(i)>=2 %如果t>=2時,y=1

y(i)=1;

elseif t(i)>=-2 & t(i)<2%如果t[-2,2)時,y=t²

y(i)=t(i).^2;

else y(i)=-1; %如果t<-2時,y=-1

end

end

2、在命令窗口中調用

>>t=0:0.5:10;

>>y=piecewise1(t)

3、運行結果

其他類似的分段函數,可以參考上述來寫代碼。

『叄』 求助!!!---如下演算法,MATLAB求解分段函數最小值的問題---謝謝!!!

改正後的程序如下:
function f=f13(x)
h=0;g=0;a=5;k=100;m=4;
for i=1:29
h=h+(x(i)-1)^2*(1+(sin(3*pi*x(i+1)))^2);
end
for i=1:30
g=g+k*(x(i)>a|x(i)<-a)*(abs(x(i))-a)^m;
end
f=0.1*((sin(pi*3*x(1)))^2+ h+ (x(30)-1)^2*(1+(sin(2*pi*x(30)))^2))+g;
分段函數第二段函數值為0,所以只考慮其他兩段就行了。
還有一個問題就是你程序最後一行中(x(30)-1)^2與給出的函數不符,你自己注意一下。

閱讀全文

與寫程序分段函數的演算法相關的資料

熱點內容
如何通過電腦查詢網路賬號 瀏覽:34
安卓手機文件存在哪裡 瀏覽:760
ps指定可用的文件類型 瀏覽:77
ps輸出文件顏色變了 瀏覽:834
qq注冊過多少網站 瀏覽:107
蘋果5s換後蓋簡單嗎 瀏覽:633
葫蘆娃游戲怎麼升級快 瀏覽:260
u盤傳送部分文件太慢 瀏覽:209
candycrushapp 瀏覽:844
華為手機助手無法升級 瀏覽:963
什麼相親網站靠譜收費低 瀏覽:576
word如何固定表格格式 瀏覽:485
數控車床帶角度怎麼編程 瀏覽:481
163公共郵箱如何下載文件 瀏覽:146
大規模醫療數據有什麼用 瀏覽:153
手機上的qq昵稱怎麼改名字 瀏覽:956
電腦刪除手機文件怎麼恢復 瀏覽:407
安卓button點擊變色 瀏覽:335
翻看文件的視頻素材 瀏覽:975
java返回對象路徑 瀏覽:224

友情鏈接