一些經典的數值分析 matlab程式

2021-07-25 06:19:52 字數 2386 閱讀 7439

1、牛頓迭代法

此方法一般用來求函式的根,速度比較快,程式比較簡單。

檔案newton.m 內容如下

%n表示迭代次數,ret為返回值

function ret=newton(n)format long

y=inline('x^3+10*x-20');

z=inline('3*x^2+10');

x0=1.5;

for i=1:n

a=y(x0);

b=z(x0);

x1=x0-a/b;

x0=x1;

endret=x1

2、復合simpson求積分

很簡單的一種求定積分的方法,將求積區間分成很多小的曲邊梯形,再累加。

檔案mulsimpson.m內容如下

%復化simpson求積分

%a,b表示區間,n表示區間數

function ret=mulsimpson(a,b,n)h=(b-a)/n;

detsum=0;

for i=1:n-1

xk=a+i*h;

detsum=detsum+fun(xk);

endret=h*(fun(a)+fun(b)+2*detsum)/2;

%內建函式

function z=fun(x)

z=exp(-x*x);

3、4階龍格-庫塔法求積分

此方法速度較快,程式設計較方便

檔案step4runge.m內容如下

%4階 runge-kutta 法

%a,b為積分區間,n為劃分數目,y0為初值,函式由fun定義function ret=step4runge(a,b,n,y0)format long

h=(b-a)/n;

n=1;

x0=a;

for n=1:n

x=x0+h;

k1=fun(x0,y0);

k2=fun(x0+h/2,y0+h*k1/2);

k3=fun(x0+h/2,y0+h*k2/2);

k4=fun(x0+h,y0+h*k3);

y=y0+h*(k1+2*(k2+k3)+k4)/6;

x0=x

y0=y

end%積分函式定義

function z=fun(x,y)

z=1+y*y;

4、gauss_seidel迭代解線性方程相比消元法,程式設計較為容易

檔案gauss_seidel.m內容如下

%此函式演示高斯-賽德爾迭代

%a表示係數矩陣,b表示值矩陣,n表示係數矩陣階數,m表示迭代次數%注意b為列向量

function y=gauss_seidel(a,b,n,m)format long

x0=[0;0;0];

for k=1:m

for i=1:n

s=0;

t=x0(i);

for j=1:n

if j~=i

s=s+a(i,j)*x0(j);

end end

x0(i)=(b(i)-s)/a(i,i);

endendy=x0;

5、高斯列主消元法

此方法為解線性方程組常用方法,先化簡增廣矩陣,然後回代求解。

檔案gauss.m內容如下

%gauss 主列消元法

%a為係數矩陣,b為列向量(行列式右側),n為係數矩陣階數function u=gauss(a,b,n)aug=[a b]%取得增廣矩陣

for k=1:n

for i=k+1:n

r=k;

det=abs(aug(k,k));

for j=k+1:n%選主元

if det

det=abs(aug(j,k));

end end

if r~=k %交換r,k

temp=r;

r=k;

k=temp;

endif aug(k,k)==0%消元失敗

disp('err!');

pause;

exit;

endfor i=k+1:n%第i 行

m=aug(i,k)/aug(k,k);%行因子for j=k:n+1

aug(i,j)=aug(i,j)-m*aug(k,j);

end end

endendaug%顯示對角化後的矩陣

x(n)=aug(n,n+1)/aug(n,n);%最後乙個解for i=n-1:-1:1%回代消元

s=0;

for j=i+1:n

s=s+aug(i,j)*x(j);

endx(i)=(aug(i,n+1)-s)/aug(i,j-1);%求第i各解

endu=x;

一些經典的話

1 時間的沙漏沉澱著無法逃離的過往,記憶的雙手總是拾起那些明媚的憂傷。2青春的羽翼,劃破傷痛的記憶 昨日的淚水,激起心中的漣漪。3如果沒有如果,時間是否會為我們停留?曾經看過的夕陽,聽過的潮落,都被時間掩埋,幻成泡沫。4也許我們都曾勇敢而堅毅,只是,在與時間老人的對峙中,我們從來都不是贏家。5悲傷的...

一些經典的話

篇一 一些很經典的話1別對我說永遠,我活不到那個點。2朋友用心交,父母用命孝3讓你哭到撕心裂肺的那個人,是你最愛的人。讓你笑到沒心沒肺那個人,是最愛你的人。4嘴巴上說祝你們幸福,心裡巴不得你們吹掉5天會黑,人會變,3分情,7分騙6如果你20歲之後,花的錢還是伸手向父母要的,那麼你的滿身名牌只能襯托出...

有關一些經營的一些心得

有關經營的一些心得 長篇 不定期更新。創業時要留意資金投入還大於預期 出於n多種原因,我們選擇了創業。現在大多數的朋友都基本會在創業前有市調,有預算。但大多數人在創業之前的資金都是短缺的 不足的。他們的預算在建立在自以為的基礎上,甚至有很多的人為了達到自己的創業目標,不斷地降低預算,削減開支。初期創...