利用追赶法解差分方程

上传人:小** 文档编号:55587347 上传时间:2018-10-02 格式:DOC 页数:4 大小:37.21KB
返回 下载 相关 举报
利用追赶法解差分方程_第1页
第1页 / 共4页
利用追赶法解差分方程_第2页
第2页 / 共4页
利用追赶法解差分方程_第3页
第3页 / 共4页
利用追赶法解差分方程_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《利用追赶法解差分方程》由会员分享,可在线阅读,更多相关《利用追赶法解差分方程(4页珍藏版)》请在金锄头文库上搜索。

1、一:题目重述一:题目重述 2()2+ () = + 定义区间为: 0,2 (0) = 1,u(2)= 0,当 = 1000时,求和()二:解题过程二:解题过程 2.12.1 求出差分方程求出差分方程差分方程为:Au=f =1 2 300998 999, =1 2 3 998 999, =1+02 2 3 998999+10002其中:= 2000 = 1,2,3999, = 2000, = = 12,= ,= + ,=22+ 2.22.2 用追赶法编程求解差分方程用追赶法编程求解差分方程function x=chase() tic;%开始计时 n=999; %对 a,b,c,f 进行赋值 a=

2、zeros(n-1,1); a=a-4000000/pi2; c=zeros(n-1,1); c=c-4000000/pi2; b=zeros(n,1); f=zeros(n,1); qx=(x)sin(x);fx=(x)cos(x)+sin(x)*cos(x); x2=zeros(n,1);%记录 u(x)的真实值 error=zeros(n,1);%记录误差 for i=1:nb(i)=8000000/pi2+qx(pi*i/2000);f(i)=fx(pi*i/2000);x2(i)=cos(pi*i/2000); end f(1)=f(1)+4000000/pi2; % 对 A 进行分

3、解,追赶法 u(1)=b(1); for i=2:n if(u(i-1)=0) l(i-1)=a(i-1)/u(i-1); u(i)=b(i)-l(i-1)*c(i-1); else end end L=eye(n)+diag(l,-1); U=diag(u)+diag(c,1); x=zeros(n,1); y=x; % 求解 Ly=b ,追赶法第一步,消去最下面的斜行 y(1)=f(1); for i=2:n y(i)=f(i)-l(i-1)*y(i-1); end % 求解 Ux=y,追赶法第二步 if(u(n)=0) x(n)=y(n)/u(n); end for i=n-1:-1:1

4、 x(i)=(y(i)-c(i)*x(i+1)/u(i); end time=toc;%计时结束,并赋值 disp(运算时间为:); disp(time); %列出计算结果 result=x x2 error; disp( 数值解 真实解 误差项); disp(result);三:计算结果三:计算结果3.13.1 MatlabMatlab 运行的结果(图运行的结果(图 1 1)图 13.23.2 整理后的部分结果(表整理后的部分结果(表 1 1)x=i*/2000数值解真实值误差i=10.999998766488219 0.999998766299704 0.000000000188515 2

5、0.999995065578381 0.999995065201858 0.000000000376523 30.999988897279619 0.999988896715596 0.000000000564023 40.999980261607153 0.999980260856137 0.000000000751016 50.999969158582291 0.999969157644790 0.000000000937501 60.999955588232430 0.999955587108950 0.000000001123480 70.999939550591052 0.99993

6、9549282101 0.000000001308951 80.999921045697731 0.999921044203816 0.000000001493915 90.999900073598126 0.999900071919754 0.000000001678372 4930.714838961127553 0.714838924546119 0.000000036581434 4940.713739638835332 0.713739602276421 0.000000036558911 4950.712638555461295 0.712638518925205 0.000000

7、036536090 4960.711535713722255 0.711535677209285 0.000000036512970 4970.710431116339366 0.710431079849813 0.000000036489553 4980.709324766038112 0.709324729572274 0.000000036465838 4990.708216665548303 0.708216629106476 0.000000036441827 5000.707106817604067 0.707106781186548 0.000000036417519 5010.

8、705995224943845 0.705995188550928 0.000000036392917 5020.704881890310382 0.704881853942361 0.000000036368021 5030.703766816450721 0.703766780107891 0.000000036342830 5040.702650006116195 0.702649969798849 0.000000036317346 5050.701531462062425 0.701531425770856 0.000000036291569 5060.700411187049307

9、 0.700411150783806 0.000000036265501 5070.699289183841008 0.699289147601868 0.000000036239140 5080.698165455205962 0.698165418993473 0.000000036212489 5090.697040003916856 0.697039967731308 0.000000036185548 9900.015707318277898 0.015707317311821 0.000000000966077 9910.014136696907518 0.014136696038

10、033 0.000000000869485 9920.012566040656241 0.012566039883353 0.000000000772888 9930.010995353399505 0.010995352723218 0.000000000676287 9940.009424639012826 0.009424638433144 0.000000000579682 9950.007853901371785 0.007853900888711 0.000000000483074 9960.006283144352021 0.006283143965559 0.000000000

11、386462 9970.004712371829222 0.004712371539373 0.000000000289849 9980.003141587679113 0.003141587485880 0.000000000193233 9990.001570795777448 0.001570795680831 0.000000000096617 表 1四:结论分析四:结论分析计算结果说明: 1.当步长足够长时(N=1000),利用差分方程解出的数值解和真实值 极为接近,误差在 10-8 数量级以上,效果非常好! 2.运行效率很高,使用追赶法解这个线性方程组,matlab 的运行时间 极短,只有 0.046 秒。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号