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

寫程序分段函數的演算法

發布時間: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與給出的函數不符,你自己注意一下。

閱讀全文

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

熱點內容
網路中常用的傳輸介質 瀏覽:518
文件如何使用 瀏覽:322
同步推密碼找回 瀏覽:865
樂高怎麼才能用電腦編程序 瀏覽:65
本機qq文件為什麼找不到 瀏覽:264
安卓qq空間免升級 瀏覽:490
linux如何刪除模塊驅動程序 瀏覽:193
at89c51c程序 瀏覽:329
怎麼創建word大綱文件 瀏覽:622
裊裊朗誦文件生成器 瀏覽:626
1054件文件是多少gb 瀏覽:371
高州禁養區內能養豬多少頭的文件 瀏覽:927
win8ico文件 瀏覽:949
仁和數控怎麼編程 瀏覽:381
項目文件夾圖片 瀏覽:87
怎麼在東芝電視安裝app 瀏覽:954
plc顯示數字怎麼編程 瀏覽:439
如何辨別假網站 瀏覽:711
寬頻用別人的賬號密碼 瀏覽:556
新app如何佔有市場 瀏覽:42

友情鏈接