matlab中fzero怎麼用,matlab簡單問題 關於fzero

時間 2021-09-21 09:59:42

1樓:愚人談娛樂

f1=@(x)cos(x)-x;

x0=0.55;

x1=fzero(f1,x0)

使用fzero函式必須先定義好函式

2樓:南取名字

格式是:z=fzero(f,x)

意義,在f這個方程中找x附近的零點賦值到z需要對f設個方程eg f=@(a) a^2+1x=5在f方程以x=5附近找零點

3樓:三翼熾天使

x=fzero(@f,x0);

這裡的@f指的是函式f,要編寫名為f的函式,如下function y=f(x)

y=cos(x)-x;

儲存為名為f的m檔案。

使用fzero函式必須先定義好函式。

4樓:匿名使用者

做了如下修改,希望有所幫助,這裡的關鍵是定義好fzero裡邊的函式,修改如下: x=-3:0.1:4;

y=sin(x).*x.^2-x+1;

fun=@(x) y;

plot(x,y,'r');

hold on;

grid;

xlabel('x');

ylabel('f(x)');

x1=fzero(@(x) sin(x).*x.^2-x+1,-2.5)

matlab簡單問題 關於fzero

5樓:醉蝶翩翩

我也很好奇 就試了一下 fzero(@(x)x^2-1,0.05)時,ans=1,。fzero是一個數值搜尋過程,依賴於函式特性,值的指定,以及matlab所能識別的最小步長。

如果想計算更準確,可以用符號函式求解0點。符號函式不用關心具體的函式值,完全當做符號處理,所以,不存在上述不穩定因素。

6樓:匿名使用者

這是一個很好的問題,雖然看似簡單,但涉及到很多值得思考的問題。

首先,應該明確一點——fzero求函式零點是和初值的選取有密切關係的,例如,x^2-1有兩個零點,取不同的初值,可能會求得不同的零點,如下圖所示。

從圖中能發現一些奇怪的現象,例如:

>> fzero(f,0.01)

ans =

-1>> fzero(f,0.16)

ans =

1>> fzero(f,0.161)

ans =

-1>> fzero(f,-0.01)

ans =

1>> fzero(f,-0.16)

ans =

-1>> fzero(f,-0.161)

ans =

1按常理,應該求得距離初值比較近的零點才對,但上面的例子顯示,事實並非如此,甚至,求得相同零點所對應的初值範圍還不連續,的確很讓人崩潰。。。

說明一下fzero求零點的基本步驟:它會首先確定一個區間,使得區間兩端的函式值異號,這樣,只要函式連續,就能夠求出一個零點。

確定區間的過程與初值x0有關,如果x0非零,就以x0/50為初始步長,向正負兩個方向分別擴充套件區間,如果滿足函式值異號,則確定區間的步驟完成,否則按照sqrt(2)的倍數增大步長,繼續擴充套件區間。需要注意的是,擴充套件區間時,按照先負方向減步長、後正方向加步長的順序,而且一旦左端點滿足要求就會終止,這樣,就可能出現從某個正的初值x0出發,分別向正負方向n次擴充套件區間,直到n+1次時,剛好負方向的符號改變,從而這個區間就確定為包圍了負方向(例如-1)這個零點。

以上應該大致可以解釋,為什麼不是象直覺理解的那樣「求出的零點應該靠近初值」。

7樓:匿名使用者

都說簡單問題了,還問?

matlab中用fsolve或fzero求零值

8樓:匿名使用者

用fsolve求解方程,如果引數是一個方程組,則意味著求得的結果必須滿足方程組中的每一個方程,所以,不能直接用類似 fzero(@(y)y-2*x,[0 0 0]) 的做法。

可以用迴圈,或者,如果想避免顯示迴圈,可以用arrayfun:

>> x=[1 2 3];

>> arrayfun(@(x)fzero(@(y)y-2*x,0),x)

ans =

2     4     6

matlab中fzero函式怎麼呼叫

蓴灬叔 f1 x cos x x x0 0.55 x1 fzero f1,x0 使用fzero函式必須先定義好函式。matlab函式 fzero 功能 查詢一元連續函式的零點。用法 x fzero fun,x0 查詢fun函式在x0附近的零點 x fzero fun,x0,options 由指定的優...

matlab怎麼使用,matlab中怎麼使用匯入的資料?

matlab基本的使用方法 1.讀取影象 用imread函式讀取影象檔案,檔案格式可以是tiff jpeg gif bmp png等。比如 讀進來的影象資料被儲存在變數f中。尾部的分號用來抑制輸出。如果 是彩色的,可以用rgb2gray轉換成灰度圖 f rgb2gray f 然後可以用size函式看...

matlab怎麼畫複數函式,matlab 中複數如何表示?我i前面已經有 就是表示不出來 不知到為什麼

我叫王土土豆 1 雙擊matlab軟體圖示,開啟matlab軟體,可以看到matlab軟體的介面。2 建立一個陣列u u 0 0.2 6 表示從0到6,每個0.2取一個數字。3 建立一個複數v,v 0.02 i。4 使用u和v建立一個複數函式z z exp v u 5 使用函式feather z 繪...