如何解决如何使用Matlab绘制边界值问题的近似解?
我已经尝试使用下面的代码绘制边界值问题的近似解,从而尝试了ezplot()
命令ezplot(sym(i),[x(i) x(i+1)])
,但这是行不通的。
我收到此错误
索引超出了数组元素的数量(3)
编译后我得到的近似解是:-1.33,-1.1660,-1.3320
。下面的代码解决了边值问题-u''+6u=-(4x^2+6)exp(x^2),u(-1)=u(1) = 0
边值问题代码:
N=4;
n=N-1;
a=-1;b=1;h=(b-a)/N ;
x=linspace(a,b,N+1);
x=x(2:end-1);
A=diag(ones(n,1));
B=diag(ones(n-1,1),-1);
C=diag(ones(n-1,1);
K1=1/h*(2*A-B-C);
K2=h*(4*A+B+C)
K=K1+K2;
K(1,1)=K(2,2)/2;
K(n,n)=K(1,1);
f=@(x) (-4*x^2-6)*exp(x^2);
b=zeros(n,1);
for i=1:n
b(i)=h*f(x(i));
end
b(1)=h/2*f(x(1));
b(n)=h/2*f(x(n));
U=pinv(K)*b
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。