matlab程序设计:题目:设已有数学模型t=an^2+bn,数据(n,t)的十个观测值分别为:

matlab程序设计:题目:设已有数学模型t=an^2+bn,数据(n,t)的十个观测值分别为:,第1张

解题过程参看下面的图。图中的点是原始数据点,线是拟合后的曲线。

下面给出代码:

%以下是Matlab代码:

t=[0  20   40   60   80   100  120  140  160  184];

n=[0  1141 2019 2760 3413 4004 4545 5051 5525 6061];

A=[sum(n^4),sum(n^3);sum(n^3),sum(n^2)];

B=[sum(tn^2);sum(tn)];

x=A\B;

a=x(1)

b=x(2)

t_fit=an^2+bn;

plot(n,t,'r',n,t_fit);

xlabel('n');   ylabel('t');

legend('source data','fitting data')

最后得到结果:

a =  26113e-006

b =    00145

当然你也可以参照一楼的matlab程序,他是直接调用系统的多项式拟合函数。

另外,还可以这样:

AA=[n^2;n]';

BB=t';

xx=AA\BB;

aa=xx(1)

bb=xx(2)

结果也是一样的。这个很简洁,但很有技巧,你看一下AA,BB的构造。

xx=AA\BB可以求解长方阵的逆。

这方面我只有些片段,没有完整的理论。因为我的相识比较异类的,跟我的很多同学不同。我是学开发的,你是应用还是开发?

1对数字要很灵敏。像我很多时候打字是用编码输入的,看到一个汉字我都能看到它背后那个那个代码。

2要算无遗漏。编程步骤多的时候容易搞错细节。比如中英文的句号,小数点,标点符号和平时写文章时的些微不同意义,等等。这么多个指令合起来后有无漏洞,或者整合后有没有更强大的用途。

3要保持“计算机程序”一样的思维。想问题的时候多换位,把自己当成电脑,用电脑的思维(角度)来想。

4看到一些好的软件,就发挥想象和所查资料结合,将它的每个零件都剥析清楚,也就是将它的来龙去脉搞得明明白白。最好还能常常自己设计一点东西,无论实不实用,这是从“懂了”到“会运用了”的关键一步。

5不怕辛苦,不怕错,不惜花钱。将自己不懂的问题无论国家大事、鸡毛蒜皮统统打印下来,见到老师就问,问了就记笔记——当然是计算机方面的问题。

6每学一个知识,事前问学长学姐当年心得,事中问同学有何感受、感想,事后多总结。别人不会但你会的,你就尽心去教别人。可能你以为这个你已经很了解了,但往往在教别人时,别人问了点问题你才发现原来自己这个也不时很懂啊

7常和老师一起谈话,除了问不懂的问题,尽量少开口多听他讲。如果老师不健谈,那你要会引导他谈话。宗旨是多想、多问、多听、少说。

clc

clear

close all

Tb = 1;

Ns = 10;

fs = Ns/Tb; % 采样频率

A = 2;

t0 = (0:1/fs:Tb-1/fs);

%% 正交信号

s0 = Aones(1,10); % 正交信号s0

s1 = [Aones(1,5) -1Aones(1,5)]; % 正交信号s1

% figure

% subplot(211);

% plot(t0,s0)

% subplot(212);

% plot(t0,s1)

%% 编码

N = 50; % 采样点数

code = [1,-1,1,1,-1]; % 5个code

for kc = 1:5

if code(kc)==1

x(Ns(kc-1)+1:kcNs) = s0;

else

x(Ns(kc-1)+1:kcNs) = s1;

end

end

%% 加噪声

% t = 0:1/fs:1/fsN-1/fs;

Nt = 1:N;

index2 = 10:10:50;

index2 = index2+2;

Nt2 = 1:5;

deta = [0,01,10,20];

for kd=1:4

noise = sqrt(deta(kd))randn(1,N); % 噪声

y = x+noise; % 输出信号

% y=x;

%% 相关

for ks = 1:5

z0(ks) = y(Ns(ks-1)+1:ksNs)s0'/10;

z1(ks) = y(Ns(ks-1)+1:ksNs)s1'/10;

end

% z0 = xcorr(y,s0);

% z1 = xcorr(y,s1);

str0 = ['噪声方差:' num2str(kd),'与s0相关结果'];

str1 = ['噪声方差:' num2str(kd),'与s1相关结果'];

figure

subplot(211);

stem(Nt2,z0)

title(str0)

subplot(212);

stem(Nt2,z1)

title(str1)

end

你可以看看这个,你怎么和之前别人提的问题一样啊

n=input('输入学生个数:');

score=zeros(n,3);

aver=zeros(n,1);

levels=zeros(1,5);

lname={'A','B','C','D','E'};

for i=1:n

for j=1:3

score(i,j)=input(sprintf('输入第%d名学生第%d门课成绩',i,j));

end

aver(i) = (score(i,1) + score(i,2) + score(i,3)) / 3;

if aver(i) >= 90

l = 1;

else if aver(i) >= 80

l = 2;

else if aver(i) >= 70

l = 3;

else if aver(i) >= 60

l = 4;

else

l = 5;

end

end

end

end

levels(l) = levels(l) + 1;

disp(strcat('该学生成绩等级为',lname{l}));

end

for i=1:5

fprintf(1,'%4c',lname{i});

end

disp(' ');

for i=1:5

fprintf(1,'%4d',levels(i));

end

disp(' ');

for i=100:999

j=fix(i/100);

k=fix((i-100j)/10);

t=i-100j-10k;

if jjj+kkk+ttt==i

i

end

end

fix是取整函数,这样写可以,但答案不唯一。望采纳!

你用全局变量即可。例如,你在GUI的某个函数中申明一个全局变量global a;

然后,你再在命令窗口写一遍global a;

此时,你运行GUI,如果a有值,在workspace中就会有出现。

以上就是关于matlab程序设计:题目:设已有数学模型t=an^2+bn,数据(n,t)的十个观测值分别为:全部的内容,包括:matlab程序设计:题目:设已有数学模型t=an^2+bn,数据(n,t)的十个观测值分别为:、谈一下你对matlab程序设计与实验的认识、求大神做matlab程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9467331.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存