如何使用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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...