Trying to solve a matrix with four equations and four unknowns. Should be three non zero terms.

16 vues (au cours des 30 derniers jours)
I am trying to solve a matrix with four equations and four unknowns. I wrote the following code based off an example from my professor but I am running into an error:
>> function SLS()
% clear memory and screen
format long;
clear all;
clc;
% Define parameters
nDim= 4; % Dimension of the System
% You may change the dimension for your purpose here
mCoeff = zeros(nDim,nDim); % Initialize the coefficient matrix
mRHS = zeros(nDim,1); % Initialize the righ-hand-side vector
% 1) In this example, this vector is generated as a
% 4*1 matrix
% 2) An alternative way is just to assign the values
% to an vertical array directly. For example:
% vRHS=[1;2;3;4]
cUnk = ['a' 'b' 'c' 'd']; % Array of unknown variables for output only
% Specify the values for the coefficient matrix
% In this example, the values are assgned row-by-row:
mCoeff(1,:)= [cos(2n-1)*((3*pi)/4) 0 cos(2n+1)*((3*pi)/4) 0];
mCoeff(2,:)= [(2n-1)*sin(2n-1)*((3*pi)/4) 0 (2n+1)*sin(2n+1)*((3*pi)/4) 0];
mCoeff(3,:)= [0 sin(2n-1)*((3*pi)/4) 0 sin(2n+1)*((3*pi)/4)];
mCoeff(4,:)= [0 (2n-1)*cos(2n-1)*((3*pi)/4) 0 (2n+1)*cos(2n+1)*((3*pi)/4)];
% Specify the values for RHS vector
mRHS(:,1)=[0;0;0;0];
% Solve for the solution
% "R" is a vector to store the results, and the results are always saved as
% floating-point numbers.
R=mCoeff\mRHS;
% Direct the ouput into an external file.
% You may check and print out the results from the saved file.
fid=fopen('SLS_Output.txt','wt');
fprintf(fid,'Mech012 Solving for Linear Equation System\nExample Code\nBy Xiao Liu(xil307)\n\n');
% Print out linear equations:
fprintf(fid,'Linear Equation System:\n\n');
for i=1:nDim
for j=1:nDim-1
fprintf(fid,'%3d%c +',mCoeff(i,j),cUnk(j));
end
fprintf(fid,'%3d%c =%4d\n',mCoeff(i,4),cUnk(4),mRHS(i,1));
end
fprintf(fid,'\n');
% Print out solution:
fprintf(fid,'Solution for [a b c d]:\n\n');
for i=1:nDim
fprintf(fid,'%c =%8.4f\n',cUnk(i),R(i));
end
function SLS()
Error: Function definition are not supported in this context. Functions can only be created as local or nested functions in code files.

Réponse acceptée

Matt J
Matt J le 3 Juil 2022
You cannot paste a function definition into the command window. Put it in a file and run it in the Maltab editor. Also, you are missing lots of multiplication operators in your code, e.g., cos(2n-1) should be cos(2*n-1)

Plus de réponses (1)

Shivam Lahoti
Shivam Lahoti le 3 Juil 2022
Modifié(e) : Shivam Lahoti le 3 Juil 2022
Hey,
Look into your code closely you are missing lot of operators, that must be the reason it throws error. you might want to calculate the values in a different way if it still not works then you shall refer to the following answer and solve for all the four variables.
https://in.mathworks.com/matlabcentral/answers/247819-trying-to-solve-4-equation-with-4-unknowns

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by