-
你是什么样的程序,为什么k中有一个冒号? 到处都是bug,你有没有仔细看过算法? 什么都不要说。 自己检查结果,对吧?
clc;clear;
k=[5 -4 0 0 -2 0 0 0;-4 16 -5 3 -2 0 0 4;0 -5 10 -3 0 -1 3 0;0 3 -3 5 0 0 4 0;-2 -2 0 0 12 -4 0 1;0 0 -1 0 -4 16 -2 0;0 0 3 4 0 -2 12 -1;0 4 0 0 1 0 -1 8];
m,n]=size(k);
x=;y=;
for j=1:m
for i=1:n
if k(i,j)~=0
m(j)=i;
breakend
endend
上列是每列的第一个非零值,然后得到另一个矩阵。
d(1,1)=k(1,1);
for j=2:n
g(m(j),j)=k(m(j),j);
for i=m(j)+1:(j-1)
mm=max(m(i),m(j));
for r=mm:(i-1)
x=[x l(r,i).*g(r,j)];
endg(i,j)=k(i,j)-sum(x);
endfor i=m(j):(j-1)
l(i,j)=g(i,j)/d(i,i);
endfor r=m(j):(j-1)
y=[y l(r,j)*g(r,j)];
endd(j,j)=k(j,j)-sum(y);end
-
程序不完整。
未给出矩阵 A,并且缺少 n 个末端
k=[1 -1;-1 1];
n=max(size(k));
for j=1:n
if a(j,:)=0
m(j)=a(j,:)
j=j+1;
end 是找到每列的第一个非零值,然后创建另一个矩阵。
d(1,1)=k(1,1);
for j=1:n
g(m(j),j)=k(m(j),j);
endfor j=1:n
for i=m(j):(j-1)
for r=m(j):(i-1)
x=l(r,i)*g(r,j);
g(i,j)=k(i,j)-sum(x);
endfor j=1:n
for i=m(j):(j-1)
l(i,j)=g(i,j)/d(i,i);
for j=1:n
for i=m(j):(j-1)
for r=m(j):(j-1)
x=l(r,i)*g(r,j);
d(j,j)=k(j,j)-sum(x);
endend
endend
endend
endend
-
我写了第一部分(下图),第二部分我不懂G算法,所以你没有解释清楚。 此外,你有很多语法错误,所以我建议你看看编程的基础知识。
k=[ 5 -3 1 0 -2 0 0 0;-4 16 -5 3 -2 0 0 4;0 -5 10 -3 0 -1 3 0;0 3 -3 5 0 0 4 0;-2 -2 0 0 12 -4 0 1;0 0 -1 0 -4 16 -2 0;0 0 3 4 0 -2 12 -1;0 4 0 0 1 0 -1 8];
m,n]=size(k)
for j=1:n
for i=1:m
if k(i,j)~=0
m(j)=k(i,j)
breakend
endend
上面是找到每列的第一个非零值,并将该值存储在 m 数组中。
-
1.首先,您需要打开文件,修改**格式命令如下cd(需要设置为工作路径的地址),然后按回车键即可生效。
2.或者在命令行窗口中输入pathtool,按回车键,然后会弹出设置路径的窗口。
-
你说的是命令窗口中的**,对吧? 您可以创建一个新的编辑器,即菜单栏左上角的第一个按钮,然后 F5 在命令窗口中运行,如果出现错误,请直接在编辑器中修改它。
-
返回并查找更改。
您可以逐段注释以查看错误的确切出现位置。
-
1. 受试者的MATLAB版本是什么? SIND 和 COSD 是 MATLAB
引入的函数用于以角度为单位计算三角函数,如果是更高版本,一般情况下不应报告为此类错误。 例如,上面的错误消息是:
?error using ==sind at 16
argument should be real.
2. 您可以自己定义这两个函数:
sind=@ x)sin(sym(pi)/180*x);
cosd=@ x)cos(sym(pi)/180*x);但是,由于求解函数错误地将 pi 视为变量,因此会导致以下错误:
?error using ==solve at 134
error,(求解中)一个常量作为变量无效,pi 避免这个问题的方法是显式指定要求解的变量:
s = solve(eq1,eq2,eq3,eq4,eq5,eq6,longi, lati, h1, t1, h2, t2) 但结果是空的,可能的原因是:(1)方程组没有解; (2)有解,但找不到解函数。
3. 可以尝试使用fsolve求解数值解,但需要注意的是,这个函数本质上是将解方程转换为优化问题,结果与初始值有关。
-
total=sum(weights,2);这句话表示每行权重中元素的总和,最终结果是一个列向量。 total=total(:,ones(4,1));这意味着前一个总计的所有元素都会被复制 4 次并重新分配给总计。
也就是说,最终的总数是一个 40000 * 4 矩阵,每行的四个元素是相同的。
-
主体提供的**没有错误,但运行时有错误,问题是主体颠倒了自定义函数和主程序的顺序。
方法一:将y1=q(r)、y2=r(q)和y3=s(r)自定义函数保存为和文件,然后将主程序保存为文件,然后在命令窗口中执行>>main % enter
方法二:创建文档,按以下顺序编写程序
主程序
function main( )
clear;clc;
format short
disp([r',theta'])
Q(R) 自定义函数、R(Q) 自定义函数和 S(Q) 自定义函数
function y1=q(r)
c1=;
function y2=r(q)
y2=q;
function y3=s(r)
c1=;
最终执行可用
-
题主给出的问题6可以这样解决。
1. 将 (1+pi) (1, 3) 分配给 x
2. E (-x) 用 exp(-x) 表示。
3.角度的三角函数可以用sind、cosd、tand等表示,即tan(73°)可以用tand(73)表示。
4. 绝对值可以用abs函数表示,即abs(sin(x) 2-sin(x 2))。
因此,问题 6 应该写成这样:
x=(1+pi)^(1/3);
y=(exp(-x)-tand(73))/1e-5+log(abs(sin(x)^2-sin(x^2)))
执行结果如下。
-
首先要给出z1z2z3的初始值,否则就求不解了,求解条件少了!! 我给出了一个初始条件,使它们都容错为0,取100个时间点作为区间,然后求解,结果如下:你的方程组就像结构动力学中的MCK方程,结果类似于正弦波,程序你可以私信我,建议你再去一次。