當前位置:首頁 » 操作系統 » 龍貝格演算法matlab

龍貝格演算法matlab

發布時間: 2022-08-28 04:19:32

Ⅰ 用matlab程序實現:用romberg方法計算積分sinx/x上限為1下限為0的近似值,要求誤差不超過0.5*10……-6

a=0;
b=1;
n=1;
k=1;
e=0.5*10^(-6);
T=zeros(10,10);
h=(b-a)/2;
t=h*(1+sin(1));
T(1,1)=t;
for j=1:9
F=0;
for i=1:n
F=F+sin(a+(2*i-1)*h)/(a+(2*i-1)*h);
end
for i=1:k
if T(1,i+1)==0
T(1,i+1)=T(1,i)/2+h*F;
end
end
for m=1:k
if T(m+1,k-m+1)==0
T(m+1,k-m+1)=(4^m*T(m,k-m+2)-T(m,k-m+1))/(4^m-1);
end
end
if abs(T(m+1,1)-T(m,1))<e
I=T(m+1,1);
break
else
h=h/2;
n=2*n;
k=k+1;
end
end

最後的 I 就是函數值,K就是滿足精度時的M值

Ⅱ 用matlab 龍貝格求積分

我試了下 把你的程序保存為Romberg.m
在工作區輸入f=@(x) 1/(x+1)
a=0
b=1
eps=10^(-4)
Romberg(f,a,b,eps)
錯誤提示是你程序第13行的變數 s沒有定義 應該是大寫吧

Ⅲ MATLAB用龍貝格積分演算法計算f=x^2在0到1上的積分

f = @(x) x.*x % f是被積函數
a = 0;b = 1; % a,b分別是積分的上下限
n = 5; % n+1是T數表的列數
delta = 10^(-8); % 允許誤差

M=1;
h=b-a;
err=1;
J=0;
R=zeros(4,4);
R(1,1)=h*(feval(f,a)+feval(f,b))/2;
while ((err>delta)&&(J<n))||(J<4)
J=J+1;
h=h/2;
s=0;
for p=1:M
x=a+h*(2*p-1);
s=s+feval(f,x);
end
R(J+1,1)=R(J,1)/2+h*s;
M=2*M;
for K=1:J
R(J+1,K+1)=R(J+1,K)+(R(J+1,K)-R(J,K))/(4^K-1);
end
err=abs(R(J,J)-R(J+1,K+1));
end

quad11=R(J+1,J+1);

quad11 % 所求積分值
R % R是T數表

Ⅳ 用matlab,龍貝格演算法計算∫(0到1)[x/(4+x²)]dx的近似值。 求程序代碼!!!

%龍貝格求積演算法function I=romberg(a,b)h=b-a;T(1)=h/2*(fun(a)+fun(b));m=1;while 1 h=h/2; S(1)=1/2*T(1)+h*sumf(2^(m-1),a,h); for j=1:m S(j+1)=S(j)+(S(j)-T(j))/(4^j-1); end if abs(S(m+1)-T(m))<1e-6 break; end T=S;m=m+1;endI=S(m+1);end
function f=sumf(m,a,h)for j=1:m y(j)=fun(a+(2*j-1)*h);endf=sum(y);end
function f=fun(x)f=x/(4+x^2);end結果:
>> I=romberg(0,1)
I =
0.111571775646293
>>

Ⅳ 關於matlab,龍貝格法求積分,求高手看一下錯在哪裡

%正解地
function y=Romberg(a,b,e)
n=10;%初始量,大致設一下
h=b-a;
t=zeros(n+1,n+1);
t(1,1)=h/4*(f(a)+2*f((a+b)/2)+f(b));
for i=1:n
t(1,i+1)=1/2*t(1,i);
for x=a+h/(2^i):h/2^(i-1):b-h/(2^i)
t(1,i+1)=t(1,i+1)+h/(2^i)*f(x);
end
end

for i=1:2
t(2,i)=4/3*t(1,i+1)-1/3*t(1,i);
end
i=3;
while(abs(t(2,i-1)-t(2,i-2))>e)
t(2,i)=4/3*t(1,i+1)-1/3*t(1,i);
y=t(2,i);
i=i+1;
if i>n break;
end
end

for i=1:2
t(3,i)=16/15*t(2,i+1)-1/15*t(2,i);
end
i=3;
while(abs(t(3,i-1)-t(3,i-2))>e)
t(3,i)=16/15*t(2,i+1)-1/15*t(2,i);
y=t(3,i);
i=i+1;
if i>n-1 break;
end
end

Ⅵ 關於romberg的matlab演算法= =高手幫我來找找錯誤= =~~~200分懸賞

T(k+1,1)=0.5*(T(k,1)+h*sum(subs(f,a+(2*[1:(2^(k-1))]-1)*h)))
這一句要改成
T(k+1,1)=0.5*(T(k,1)+h*sum(subs(f,a+(2*[1:(2^(k-1))]-1)*h/2)))

最後一個h改成h/2

不過你這個算到第4列的數是龍貝格的,那第五列是什麼呢?你的程序是一直往下走的啊。

Ⅶ 已知橢圓的方程是x^2+y^2/4=1,要在matlab用積分的方法求其周長,應該怎麼做啊急啊,謝謝了

曲線長度積分l=∫√[φ'(t)^2+ψ'(t)^2] dt 橢圓參數方程為x=φ(t)=a sint y=ψ(t)=b cost
或l=∫√(1+y『^2)dx 在(0,pi/2) 內 橢圓y=b*(1-x^2/a^2)^0.5
sin²x=(sinx)^2

Ⅷ Matlab/simulink中,什麼叫Oder45和Ode23bt演算法

ode45是基於四點法和五點法的解微分方程數值解的方法,ode23等也一樣,都是基於已知點「預測」下一個點的函數值的方法,不同的演算法「預測」的方法不一樣。比較著名的「預測」方法有歐拉法,改進的歐拉法,龍格庫塔法,多點法等。在matlab一般使用中這些方法的差別不大,可以不予理會,會用一個即可,推薦ODE4。

Ⅸ 用matlab龍貝格演算法

主程序
clc;
clear;
format long e;%精確顯示
y=18;
T=zeros(y,y);%定義長度為y的矩陣T
for i=0:y-1
T(i+1)=i;%對矩陣T的第一行賦初值
end
a=0;
b=1;
T(1,2)=(b-a)*(1+f(b))/2;%算出T1
for l=2:y
sum=0;
for j=1:2^(l-1)
sum=sum+f(a+(2*j-1)*(b-a)/2^l);
end
T(l,2)=T(l-1,2)/2+((b-a)/2^l)*sum; %算出梯形序列
if (T(l,2)-T(l-1,2))<0.0000005; %判斷是否符合精度
break;
end
end
h=1;
for m=1:y-2
for k=h:(y+h-m-1)
T(k+1,m+2)=((4^m)*T(k+1,m+1)-T(k,m+1))/(4^m-1);
%按公式算出接下去的序列
if (T(k+1,m+2)-T(k,m+2))<0.0000005;
break;
end
end
h=h+1;
end

熱點內容
怎樣增加共享文件夾連接數量 發布:2025-05-15 11:24:50 瀏覽:961
安卓如何關閉單應用音量 發布:2025-05-15 11:22:31 瀏覽:350
抖音電腦後台伺服器中斷 發布:2025-05-15 11:11:59 瀏覽:307
sql2008伺服器 發布:2025-05-15 11:03:27 瀏覽:306
我的世界pe伺服器創造 發布:2025-05-15 10:51:17 瀏覽:608
移動端打吃雞要什麼配置 發布:2025-05-15 10:48:16 瀏覽:756
我的世界哪五個伺服器被炸了 發布:2025-05-15 10:36:16 瀏覽:994
ehcache存儲對象 發布:2025-05-15 10:35:31 瀏覽:528
搭建虛擬電腦的伺服器 發布:2025-05-15 10:29:31 瀏覽:270
湖人雙核配置哪個最好 發布:2025-05-15 10:09:48 瀏覽:980