❶ 我在學數值分析這門課,其中好多地方用到matlab,想請問關於數值分析的matlab應該怎樣學
下面是我寫的,放心用去啦~~~
%超鬆弛迭代(SOR方法)
function [x k flag]=SOR(A, b, eps ,w,maxl)
%A為方程組的系數矩陣
%b為方程組的右端向量
%eps為精度要求
%maxl為最大迭代次數,預設值為100
%w為超鬆弛因子,默認值為1
%x為方程組的解
%k為迭代次數
%flag為指標變數
%賦初值:
if nargin<5 maxl=100;end
if nargin<4 w=1;end
if nargin<3 eps=1e-5;end
n=length(b); k=0;
x=zeros(n,1); y=zeros(n,1); flag='OK';
%開始迭代:
while true
y=x; %y,z均為輔助變數
for i=1:n
z=b(i);
for j=1:n
if j~=i
z=z-A(i,j)*x(j);
end
end
if abs(A(i,i))<1e-10|k==maxl
flag='failure';return;
end
z=z/A(i,i);x(i)=(1-w)*x(i)+w*z;
end
if norm(y-x,inf)<eps
break;
end
k=k+1;
end
%Jacobi迭代法解線性方程組
function [x k flag]=Jacobi(A, b, eps ,maxl)
%A為方程組的系數矩陣
%b為方程組的右端向量
%eps為精度要求
%maxl為最大迭代次數,預設值為100
%x為方程組的解
%k為迭代次數
%flag為指標變數
%賦初值:
if nargin<4 maxl=100;end
if nargin<3 eps=1e-5;end
n=length(b); k=0;
x=zeros(n,1); y=zeros(n,1); flag='OK';
%開始迭代:
while 1
for i=1:n
y(i)=b(i);
for j=1:n
if j~=i
y(i)=y(i)-A(i,j)*x(j);
end
end
if abs(A(i,i))<1e-10|k==maxl
flag='failure';return;
end
y(i)=y(i)/A(i,i);
end
if norm(y-x,inf)<eps
break;
end
x=y; k=k+1;
end
稍微調試肯定可以通過,都是經過測試的,記得給我分數呦,謝啦~~~
❷ 應用數值計算方法(運用MATLAB)求解帶參數的定積分
這個很簡單啊:
>> syms t x
>> int(sin(t)/t,0,x)
ans =
sinint(x)
由於 sin(t)/t 的積分沒有更簡單的初等函數表示,所以用一個專門的函數 sinint 來表達(可以doc sinint 查看該函數的說明)。
❸ 用Matlab的數值計算方法編程,在同一幅圖中畫出幾個函數圖象。在線急等,感謝高手解答。
clear all
clc
x=0:0.1:5*pi;
y1=10/sqrt(1-0.5^2)*exp(-0.5*x).*sin(5*x);
y2=10/sqrt(1-0.5^2)*exp(-0.5*x);
y3=-10/sqrt(1-0.5^2)*exp(-0.5*x)
plot(x,y1,'r-',x,y2,'g-.',x,y3,'k')
title('stuid+stuname');
xlabel('振盪時間x');
ylabel('振盪函數幅度值');
axis([0,14,-12,12]);
text(0.5*pi,10/sqrt(1-0.5^2)*exp(-0.5*0.5*pi).*sin(5*0.5*pi),'曲線f1');
text(0.3*pi,-10/sqrt(1-0.5^2)*exp(-0.5*0.3*pi),'曲線f1的包絡')
❹ 什麼是matlab數值計算概念
《Matlab數值計算方法》系統地介紹了常見數學問題的各種數值解法及其內在的邏輯聯系,並用MATLAB作為演算法實現工具,為快速掌握理論打下堅實的基礎。《Matlab數值計算方法》共分10章,主要內容包括MATLAB概論、MATLAB基礎知識、MATLAB數據的圖形表示、插值法和數據擬合、數值積分、常微分方程初值問題數值解法、非線性方程求解、求解線性代數方程組和計算矩陣特徵值的迭代法、線性方程組的數值解法,以及MATLAB在數值計算中的綜合應用。(如果對你有幫助,請設置「好評」,謝謝!)
❺ 求高手!!!!!!數值分析實驗用matlab計算
%選取節點
x = -1:2/19:1;
x = single(x);
%計算節點處樣本點
y = exp(x);
y = single(y);
%多項式基函數次數取值
table = [3 5 7 9 11 13 15];
cn = zeros(7,1);
sigma = zeros(7,1);
%多項式基函數次數
for m = 1:7
I = table(m);
%計算系數矩陣
G = zeros(I+1,I+1);
for i = 1:I+1
for j = 1:I+1
if (i==j)
G(i,j) = 2/(2*j-1);
else
G(i,j) = 0;
end
end
end
G = single(G);
%計算系數矩陣的條件數
cn(m) = cond(G);
%計算dd
dd = [2.3504 0.735759 0.143126 0.0201302 0.00221447 0.000199925 0.0000153007 1.01607*10^-6 5.95849*10^-8 3.12823*10^-9 1.48656*10^-10 0.*10^-12 2.57744*10^-13 0.*10^-15 0.*10^-15 0.*10^-18 0.*10^-15]
dd = single(dd);
%計算d
d = zeros(I+1,1);
for i = 1:I+1
d(i) = dd(i);
end
d=single(d);
%求解多項式系數矩陣a
a = inv(G)*d;
a = single(a);
%計算嘞讓德多項式在給定節點處的值
P = zeros(16,20);
for k = 1:20
P(1,k) = 1;
P(2,k) = x(k);
P(3,k) = (3*x(k)^2-1)/2;
P(4,k) = (5*x(k)^3-3*x(k))/2;
P(5,k) = (35*x(k)^4-30*x(k)^2+3)/8;
P(6,k) = (63*x(k)^5-70*x(k)^3+15*x(k))/8;
P(7,k) = (231*x(k)^6-315*x(k)^4+105*x(K)^2-5)/16;
P(8,k) = (429*x(k)^7-693*x(k)^5+315*x(k)^3-35*x(k))/6;
P(9,k) = (6435*x(k)^8-12012*x(k)^6+6930*x(k)^4-1260*x(k)^2+35)/128;
P(10,k) = (12155*x(k)^9-25740*x(k)^7+18018*x(k)^5-4620*x(k)^3+315*x(k))/128;
P(11,k) = (46189*x(k)^10-109395*x(k)^8+90090*x(k)^6-30030*x(k)^4+3465*x(k)^2-63)/256;
P(12,k) = (88179*x(k)^11-230945*x(k)^9+218790*x(k)^7-90090*x(k)^5+1505*x(k)^3-639*x(k))/256;
P(13,k) = (676039*x(k)^12-1939938*x(k)^10+2078505*x(k)^8-1021020*x(k)^6+225225*x(k)^4-18018*x(k)^2+231)/1024;
P(14,k) = (1300075*x(k)^13-4056234*x(k)^11+484945*x(k)^9-2771340*x(k)^7+765765*x(k)^5-90090*x(k)^3+3003*x(k))/1024;
P(15,k) = (5014575*x(k)^14-16900975*x(k)^12+22309287*x(k)^10-14549535*x(k)^8+4849845*x(k)^6-765765*x(k)^4+45045*x(k)^2-429)/2048;
P(16,k) = (9694845*x(k)^15-35102025*x(k)^13+50702925*x(k)^11-37182145*x(k)^9+14549535*x(k)^7-2909907*x(k)^5+255255*x(k)^3-6435*x(k))/2048;
end
P = single(P);
%計算擬合所得數值
yy = y;
for k = 1:20
sum3 = 0;
for i = 1:I+1
sum3 = sum3+a(i)*P(i,k);
end
yy(k) = sum3;
end
yy = single(yy);
%計算偏差sigma
for k = 1:20
sigma(m) = sigma(m)+(yy(k)-y(k))^2;
end
end
figure(1);
plot(table,log(cn))
hold on
plot(table,log(cn),'r*')
figure(2);
plot(table,sigma)
hold on
plot(table,sigma,'r*')
❻ matlab在數值分析中的應用有哪些
MATLAB是由美國mathworks公司發布的主要面對科學計算、可視化以及互動式程序設計的高科技計算環境。它將數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和模擬等諸多強大功能集成在一個易於使用的視窗環境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,並在很大程度上擺脫了傳統非互動式程序設計語言(如C、Fortran)的編輯模式,代表了當今國際科學計算軟體的先進水平。 MATLAB和Mathematica、Maple並稱為三大數學軟體。它在數學類科技應用軟體中在數值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數和數據、實現演算法、創建用戶界面、連接其他編程語言的程序等,主要應用於工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。 MATLAB的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完成相同的事情簡捷得多,並且mathwork也吸收了像Maple等軟體的優點,使MATLAB成為一個強大的數學軟體。在新的版本中也加入了對C,FORTRAN,C++ ,JAVA的支持。可以直接調用,用戶也可以將自己編寫的實用程序導入到MATLAB函數庫中方便自己以後調用,此外許多的MATLAB愛好者都編寫了一些經典的程序,用戶可以直接進行下載就可以用。 MATLAB 產品族可以用來進行以下各種工作: ● 數值分析 ● 數值和符號計算 ● 工程與科學繪圖 ● 控制系統的設計與模擬 ● 數字圖像處理 技術 ● 數字信號處理 技術 ● 通訊系統設計與模擬 ● 財務與金融工程 MATLAB 的應用范圍非常廣,包括信號和圖像處理、通訊、控制系統設計、測試和測量、財務建模和分析以及計算生物學等眾多應用領域。附加的工具箱(單獨提供的專用 MATLAB 函數集)擴展了MATLAB 環境,以解決這些應用領域內特定類型的問題。
❼ 關於數值計算方法的線性方程組的數值解法,求解具體步驟,最好可以有matlab編程
會慢慢收斂到A的第一個特徵向量,然後max||Xk|會收斂到第一個特徵值,也就是絕對值最大的那個特徵值。
X=A\b; b=X/norm(X,'inf');
X=A\b; b=X/norm(X,'inf');
......
❽ matlab怎麼做數值分析
用matlab軟體做數值分析相對其他數學要方便的多,如求解非線性方程的數值解,微分方程的數值解,數學模型的預測等等多比較實用。
❾ 怎麼利用matlab對數值分析中線性插值進行運算
clear;clc A1=[397 384 425 416 498 476]; A2=[406 425 482 464 518 523]; A3=[456 472 521 514 560 579]; X=[A1' A2' A3']; reps=2; [P,Table]=anova2(X,reps,'on')
❿ 數值計算方法的matlab源程序
題目是多項式插值的振盪現象,函數在[-1,1]上為y=1./(1+25*x.^2)
就此寫的程序如下:
function y=func1(x,c)
if c=1;
y=1./(1+25*x.^2);
end;
if c=2;
y=x./(1+x.^4);
end;
if c=3;
y=atan(x);
end;
運行後錯誤說明如下:
??? Error: File: func1.m Line: 2 Column: 5
The expression to the left of the equals sign is not a valid target for an assignment.
請問高手我該怎麼修改程序..問題補充:
改為c==1後,此時運行程序也是錯誤,說明如下:
Error in ==> func1 at 2
func1