導航:首頁 > 研究方法 > matlab數值分析方法

matlab數值分析方法

發布時間:2023-05-07 01:00:19

⑴ 用Matlab進行數值分析

數據擬合,插值這塊就夠用了。

⑵ matlab怎麼做數值分析

用matlab軟體做數值分析相對其他數學要方便的多,如求解非線性方程的數值解,微分方程的數值解,數學模型的預測等等多比較實用。

⑶ 數值分析 Doolittle分解 用matlab做

根者稿逗據Doolittle分解格式, 可以用matlab分解A矩陣為一個下三角矩陣L與首賣上三角矩陣U的乘積。

其實現過程為:

第一步:初始化

1、初始化上三角陣的第一行

2、初始化下三敬薯角陣的第一列

第二步:前向分解計算

⑷ MATLAB數值分析的介紹

《MATLAB數值分析》以最新版MATLAB為平台,介紹了數值分析方法與圖形可視化。全書共分9章,第1、2章講解了MATLAB基礎知識,第3~9章分別講解了誤差、插值法與曲線擬合、線性方程組的數值解法、非線性方程求解喚物森、數值微分與數值積分、矩陣特徵值計算和常微分方程的數值解。MATLAB以其獨特的魅力,改變了傳統數值分析的編程觀念,從而成為實現上述目標的有利螞握工具。 《MATLAB數值分析》可作為理工科各專業本科生、研究生以及應用MATLAB的相關科技人員學習和畝MATLAB數值分析、建模、模擬的教材或參考書。

如何用matlab求方程的數值解

fun=@(x,y)y.*log10(y)-x創建關於x,y的匿名函數
log10(x)由於Matlab中自然對數的符號是log(與我們數學上的不同),以10為底的對數符號是log10,同理有卜搜log2,但是沒有log3等哦
vpa將得到的符號解轉化為指定精度的小數,比如vpa('sqrt(2)',10)將sqrt(2)表示10位精度的小數
fzero是Matlab求解一元函數零點的內置函數
fsolve是Matlab中求解方程組解(可以求解復數)的內置函數,功能強於fzero
fval是返回fun(x)的值,也就是說fzero和茄敗fsolve返回方程的解x,那麼此時的fun(x)就是fval
這個方法比較多 可以數值也可以解析求解
1.解析求解
>> solve('顫弊顫y*log10(y)=3','y')
ans =
3*log(10)/lambertw(3*log(10))
>> vpa(ans)
ans =
4.
2.數值解法這個可以使用fsolve和fzero,前者的功能更加強大,但是對於這個問題fzero就可以了
>>x=3;
>>fun=@(y)y*log10(y)-x;
%使用fsolve
>> [x,fval]=fsolve(fun,rand)
Optimization terminated: first-order optimality is less than options.TolFun.
x =
4.5555
fval =
3.9620e-008
%使用fzero
>> [x,fval]=fzero(fun,5)
x =
4.5555
fval =
-8.8818e-016

⑹ 用matlab求解數值計算問題,matlab中已有各種數值計

用matlab求解數值計算問題方法:
1、使用MATLAB中提供的ode45,ode23等函數,將微分方程直接輸入函數,即可得到所求解的解析解。
2、使用MATLAB中提供的函擾譽數linsolve,solve,inv等,將方程組參數輸入函數,即可得到所求解的解析解。
3、使用緩明段MATLAB中提供的fsolve函數槐磨,將非線性方程參數輸入函數,即可得到所求解的解析解。
4、使用MATLAB中提供的fminsearch,fmincon等函數,將最優化問題參數輸入函數,即可得到所求解的解析解。

⑺ matlab實現歐拉法和RK-4方法的數值計算

程序已經寫了,不過步長你得自己調,當步長較小時,計算時間會沒岩很長
另外,tend是時間的終值,你可以設小一些。因為解析解為10*cos(x),我設成pi,就是計算半個周期。

x''(t)=-x(t)
引入y1=x,y2=x',則
y1'=y2
y2'=-x=-y1

初始條件為:
y1(0)=10;
y2(0)=0;

將下面兩行百分號之間的內容,保存成DiffEulerRk4.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function MaxDiffX=DiffEulerRk4(dt,PlotFlag)
%dt是步長
%PlotFlag是握信否作圖
if nargin<1
dt=0.01;
end
if nargin<2
PlotFlag=0;
end

f=inline('[y(2);-y(1)]','t','y'); %微分方程的右邊項
t0=0; %初始時刻
tend=pi; %計算的點數
tt=t0:dt:tend; %一系列離散的點
N=length(tt); %點數
y0=[10;0];

%%(1)歐拉法
EulerY=y0;
for i=2:N
EulerY(:,i)=EulerY(:,i-1)+dt*f(tt(i-1),EulerY(:,i-1));
end
EulerX=EulerY(1,:); %取x

%%(2)龍格庫塔法
RkY=y0;
for i=2:N
k1=f(tt(i-1), RkY(:,i-1));
k2=f(tt(i-1)+dt/2, RkY(:,i-1)+k1*dt/2);
k3=f(tt(i-1)+dt/2, RkY(:,i-1)+k2*dt/2);
k4=f(tt(i-1)+dt, RkY(:,i-1)+k3*dt);
RkY(:,i)=RkY(:,i-1)+(k1+2*k2+2*k3+k4)*dt/6;
end
RkX=RkY(1,:); %取x

%精確解
syms t
analytic=dsolve('D2x=-x','x(0)=10','Dx(0)=0','t');
rightdata=subs(analytic,t,tt);

if PlotFlag
plot(tt,EulerX,'b-',tt,RkX,'r--',tt,rightdata,'g-.')
legend('Euler','Runge-Kutta','analytic')
end

MaxDiffX=[max(abs(RkX-rightdata)),max(abs(EulerX-rightdata))];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

所有題,都得你自己調步長。
輸入:
DiffEulerRk4(0.01,1) %步長取0.01的計枯皮御算結果,參數為1代表作圖,自己得修改步長

%%下面是變化
Error=[];
Dt=[5e-4,1e-3,2e-3,5e-3,0.01,0.05,0.1];
for dt=Dt %幾種步長,自行修改
dt %查看dt,步長小,計算量大
Error_1=DiffEulerRk4(dt); %不作圖
Error=[Error;Error_1]; %保存歐拉法誤差
end
semilogx(Dt,Error)
legend('Euler','RK4')
xlabel('步長')
ylabel('誤差')
title('與理論值誤差')

⑻ 我在學數值分析這門課,其中好多地方用到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 數值分析

初始值不是那樣輸入的

⑽ 如何用Matlab編程計算二階常微分方程組的數值解

用Matlab編程計算二階常微分方程組的數值解的方法有很多種,最常用有ode45函數。

ode45函數的使用格式:

【t,y】=ode45(odefun,tspan,y0)

例如:

閱讀全文

與matlab數值分析方法相關的資料

熱點內容
常用焊接成型的工藝方法及應用 瀏覽:57
交流電的計算方法視頻 瀏覽:672
台秤及分析天平使用方法 瀏覽:5
有什麼方法把軟體轉移到內存卡上 瀏覽:607
菠蘿頭子的種植方法 瀏覽:977
語文中的論述方法有哪些 瀏覽:382
喔刷的使用方法圖解 瀏覽:351
思密達如何服用方法 瀏覽:131
檢測駕駛能力的方法 瀏覽:956
蘋果手機微信手勢密碼設置在哪裡設置方法 瀏覽:361
怎麼懷孕快的方法照片 瀏覽:572
督灸貼使用方法圖片 瀏覽:15
水晶頭兩件安裝方法 瀏覽:239
鑒別好壞毛筆的方法 瀏覽:174
便秘肛裂的治療方法 瀏覽:142
外圈軸承取出方法視頻 瀏覽:968
精密度的表示方法通常用 瀏覽:762
社會調查研究方法第二章 瀏覽:91
海蟹黃咸鴨蛋黃的食用方法 瀏覽:601
小孩胯骨滑膜炎的最佳按摩方法 瀏覽:646