matlab 語言 用弦截法任意實數方程求實根

時間 2022-12-28 00:10:07

1樓:匿名使用者

弦截法這個方法一般用作學習,實際用的很少。這裡我提供乙個較完整的弦截法求根的函式。function root=secant(f,a,b,eps)

if(nargin==3)

eps=;endf1=subs(sym(f),findsym(sym(f)),a);

f2=subs(sym(f),findsym(sym(f)),b);

if(f1==0)

root=a;

endif(f2==0)

root=b;

endif(f1*f2>0)

disp('兩端點函式值乘積大於0!')

return;

elsetol=1;

fa=subs(sym(f),findsym(sym(f)),a);

fb=subs(sym(f),findsym(sym(f)),b);

root=a-(b-a)*fa/(fb-fa);

while(tol>eps)

r1=root;

fx=subs(sym(f),findsym(sym(f)),r1);

s=fx*fa;

if(s==0)

root=r1;

elseif(s>0)

root=b-(r1-b)*fb/(fx-fb);

elseroot=a-(r1-a)*fa/(fx-fa);

endend

tol=abs(root-r1);

endend

對於本題,輸入:>>y=secant(''5)結果:y =

2樓:匿名使用者

我用你的函式去寫**,一直出錯,然後我換了乙個函式就能執行出來了》 syms x y

>> f=sym('x^2-y=0');

>> x=linspace(0,5);>solve(f,x)

用弦截法求方程f(x)=x^3-5x^2+16x-80=0的根.具體問題是要用變數要素圖,畫出引數的傳遞過程和結果。

3樓:大汽張國樑

//弦截法求x*x*x-5*x*x+16*x-80=0的根。

求x^3-5x^2+16x-80的值:

#include

#include

float f(float x)

float point(float x1,float x2)

void main()

while (f(x1)*f(x2) >0); 當輸入兩個數大於0為真時,繼續重新輸入。

//關鍵迴圈步驟:

dowhile (fabs(f(x)) 為取值精度。

printf("乙個解為%f",x);

}本段matlab**。

定義函式。function y=f(t)

y=f(t); 函式f(t)的表示式。

主程式i=0; %迭代此處記數。

t1=t1; %迭代初值t1

t2=t2; %迭代初值t2

while i<=100;

y=t2-f(t2)/(f(t2)-f(t1))*t2-t1); 弦截法迭代格式。

if abs(y-t2)>10^(-6); 收斂判據。

t1=t2;

t2=yelse break

endi=i+1;

endfprintf('%s%.6f\t%s%d%',泡點溫度t=',y,'迭代次數i=',i)%輸出結果。

開放分類:演算法程式設計。

matlab程式設計求方程根 5

4樓:甫皖然

網路上面就有**,自己動手搜尋一下拿來就可以直接用……

再說自己編也挺簡單的……

求用matlab編制方程求根的二分法和newton法的 matlab 程式!!!謝謝~

c語言弦截法求方程的根,實在是不知道錯哪了,求看看

5樓:匿名使用者

fabs(f(xp))>

精度太高算不出來,把改為就可以了,或者把程式中所有的float改為double也行。

弦截法的數學原理是什麼!!看了C語言裡的例子,我實在不能理解?謝謝

你知道乙個方程的根的大致範圍 a,b 要求得更加確切的根。1 你在 a,b 之間找乙個數 c。2 如果你認為 數 c 已經足夠作為方程的根了 一般是精度夠了 那就找到了方程的根,退出。3 否則,用找到的數字 c 分割區間 a,b 於是有兩個新的範圍 a,c c,b 你進一步判斷方程的根是在 a,c ...

用matlab做牛頓迭代法,用matlab如何編寫牛頓迭代法問題,謝謝

sky不用太多 function a cal a,b,v a,b表示區間,v是精度 i 1 x a b 2 a i x t x x 3 x 1 3 x 2 1 迭代函式 while abs t x v i i 1 x t a a i x t x x 3 x 1 3 x 2 1 迭代函式 enda a...

迭代法,二分法,牛頓迭代法,弦截法的演算法設計思想

炫心吾動之夜愛 1 迭代法設計思想最簡單 x f x 但這種方法初值很主要,不然容易發散。2 二分法設計思想是先給定區間 a,b 要求f a 與f b 是異號,保證區間內與x軸有交點,求x a b 2,求f x 檢查f x 與f a 是否同號,如果是同號,把x當成新的a,否則把x當成新的b,得到新的...