필터 지우기
필터 지우기

Where have I made mistakes in this code

조회 수: 1 (최근 30일)
Lukgaf
Lukgaf 2018년 3월 22일
댓글: Walter Roberson 2018년 3월 22일
%prob2.m
% u’’- 4u’ + 4u = exp(x)+ C;
% Subject to u(1) = 0; u(-1) = 0; C=(-4*exp)/(1+(exp)^2);
N = 40;
[D, x]=cheb(N); %%we call this function to get the Derivative matrix D
I = eye(N+1); % I is the identity matrix of size (N+1)
C=(-4*exp(x))/(1+(exp(x).^2)); %the value of the constant
A = D^2 - 4*D + 4*I; f = exp(x)+ C;
B = A(2:N,2:N); %to impose the boundary conditions
ff = f(2:N);
v = B\ff; %solve the BVP.
u = [0;v;0]; xx = -1:0.1:1;
u_exact = exp(xx)-(sinh(1)/sinh(2))*exp(2*xx)+ C/4;
plot(x,u); %plot the numerical solution
xlabel('x')
ylabel('u')
hold on
plot(xx,u_exact,'o'); % plot the exact solution
hold off
I have used the similar code to solve many questions, why is not working for this? Thanks. It shows this eror: Error
in prob2 (line 11)
v = B\ff; %solve the BVP.
  댓글 수: 7
Lukgaf
Lukgaf 2018년 3월 22일
>> prob2
Error using \
Matrix dimensions must agree.
Error in prob2 (line 11)
v = B\ff; %solve the BVP.
Jan
Jan 2018년 3월 22일
편집: Jan 2018년 3월 22일
@Lukgaf: This is the line, which causes the error. But what is the message, which explains what the problem is?

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2018년 3월 22일
v = B\ff.'; %solve the BVP.
  댓글 수: 2
Lukgaf
Lukgaf 2018년 3월 22일
Thanks all. But why is the exact soluation has the similar problem.
Matrix dimensions must agree.
Error in prob2 (line 13)
u_exact = exp(xx)-(sinh(1)/sinh(2))* exp(2*xx)+ C/4;
Walter Roberson
Walter Roberson 2018년 3월 22일
You would get that error if xx is a vector or array and C is a vector or array of different size than xx (though starting in R2016b some size combinations can be meaningfully computed as if you had used bsxfun)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by