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

寫程序分段函數的演算法

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

閱讀全文

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

熱點內容
ubuntu文件夾解鎖 瀏覽:34
網站多少錢一單 瀏覽:382
系統鏡像恢復找不到文件 瀏覽:255
進什麼網站 瀏覽:588
修改了配置文件代碼沒有讀出來 瀏覽:749
vss資料庫是什麼 瀏覽:899
奇跡13單機系統找不到指定文件 瀏覽:719
flyme魅藍3以前的版本 瀏覽:318
安卓文件管理哪些文件夾可以刪除 瀏覽:290
安卓車載導航沒有聲音是怎麼回事 瀏覽:810
cjson數組格式 瀏覽:159
vb文件在哪裡 瀏覽:215
工廠里都招什麼編程人員 瀏覽:932
jspsql登錄 瀏覽:981
網路用語粉絲閱讀什麼意思 瀏覽:333
紅頭文件怎麼列印 瀏覽:94
熱血江湖130刺客升級 瀏覽:106
jsp頁面放大鏡技術介紹 瀏覽:101
網路編程udp 瀏覽:148
加密壓縮文件如何打開 瀏覽:56

友情鏈接