簡潔版
% hanshu=input('請輸入函式f(x):','s')
fprintf('請輸入差值區間最小值:\n')
xmin=input('')
fprintf('請輸入差值區間最大值:\n')
xmax=input('')
fprintf('請輸入等分份數:\n')
n = input('')
fprintf('請輸入自變數x:\n')
xin=input('')
h=(xmax-xmin)/n
x =
for t = 1:n+1
x(t)=xmin+h*(t-1)
g(t)=1/(1 + x(t)^2)
% re =x(t)
% f(t) = @(re)hanshu
endy=0.0
k = 0
l=;for k =1:n+1
l=1.0;
for j=1:k-1
l=l*(xin-x(j))/(x(k)-x(j));
endfor j=k+1:n+1
l=l*(xin-x(j))/(x(k)-x(j));
endl(k)=l;
y=y+l(k)*g(k);
end
檔案版
% hanshu=input('請輸入函式f(x):','s')
fprintf('請輸入差值區間最小值:\n')
xmin=input('');
fprintf('請輸入差值區間最大值:\n')
xmax=input('');
% fprintf('請輸入等分份數:\n')
% n = input('');
out=zeros(4,5);
l=zeros(21,5,4);
y=zeros(4,5);
for i=1:5
fprintf('請輸入自變數x:\n')
xin=input('');
x = ;
ii=1;
for n =5:5:20
h=(xmax-xmin)/n;
for t = 1:n+1
x(t)=xmin+h*(t-1);
g(t)=1/(1 + x(t)^2);
% g(t)=exp(x(t));
% re =x(t)
% f(t) = @(re)hanshu
endy=0.0;
k = 0;
for k =1:n+1
l=1.0;
for j=1:k-1
l=l*(xin-x(j))/(x(k)-x(j));
endfor j=k+1:n+1
l=l*(xin-x(j))/(x(k)-x(j));
endl(k,i,ii)=l;
y=y+l(k,i,ii)*g(k);
y(ii,i)=y;
endii=ii+1;
endendfp=fopen('b.txt','a');%'a.txt'為檔名;'a'為開啟方式:在開啟的檔案末端新增資料,若檔案不存在則建立。
fprintf(fp,'%f\t%f\t%f\t%f\t%f\t\r\n',y);%fp為檔案控制代碼,指定要寫入資料的檔案。注意:%d後有空格。
fclose(fp);%關閉檔案。
插值多項式例子
給定函式 ex 在區間 1,1 上的資料表如下 x 101 f x 0.3679 1.0000 2.7182f x 0.3679 1.0000 2.7182 給出 hermite 插值多項式,並計算其誤差。mathematica code create by zzw clear f,f1,a her...
實驗三 牛頓插值多項式
實驗三 牛頓插值多項式 實驗內容 天安門廣場公升旗的時間是日出的時刻,而降旗的時間是日落時分,根據天安門廣場管理委員會的公告,某年10月份公升降旗的時間如下 日期 1 15 22 公升旗 6 09 6 23 6 31 降旗 17 58 17 36 17 26 根據上述資料構造newton插值多項式,...
玄學小記 4 多項式插值
給定平面上的 n 個點,求乙個 n 1 階多項式經過這些點 我以前應該是只會 o n 3 的高斯消元的 就是直接把方程列出來直接解的那種 考慮拉格朗日插值法 f sum y i prod frac 顯然如果直接計算右邊的式子可以得到乙個 o n 3 的做法,這不夠優越 注意到 prod x x j ...