
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
我第一次接触matlab,但老师就要求我们用它来编程了
无从下手
题目:
1。设方程的根为X=[-3,-5,-8,-9],编写MATLAB程序求他们对应的X多项式的系数。
2。 设f(x)=1/((x-2)^2+01) +1/((x-3)^4+001),写出一个MATLAB函数程序f31m,使得调用f1时,x可用距阵代入,得出的f(x)为同阶距阵。画出x=[0,4]区间内的f31曲线。
我是新人,把所用分都拿出来了
忘哪位强人帮帮忙
在此谢过!
解析:
1设多项式为:x^4+ax^3+bx^2+cx+d=0
y=subs('x^4+ax^3+bx^2+cx+d=0',[-3 -5 -8 -9])
p=solve(y(1),y(2),y(3),y(4))
a=pa,b=pb,c=pc,d=pd
运行结果:
a =25
b =223
c =831
d =1080
验证:
X=roots([1 25 223 831 1080])
X =
-90000
-80000
-50000
-30000
2把以下2行文件存为f31m
function f=f31(x)
f=1/((x-2)^2+01) +1/((x-3)^4+001);
例如:
>> f31(2)
ans = 109901
>> f31([2 3 4;1 2 3])
ans =
109901 1009091 12340
09716 109901 1009091
3画出x=[0,4]区间内的f31曲线
>> fplot('1/((x-2)^2+01) +1/((x-3)^4+001)',[0,4])
首先建立以个函数文件,代码如下面两行,保存到工作空间,文件名一定要是fun(因为下面的函数文件我命名为fun了)
function Vt=fun(a,t)
Vt=10-(10-a(1))exp(-t/a(2)); %a(1)=V0,a(2) =τ
接着是主程序,包括下面全部:
%下面是数据
t=[05 1 2 3 4 5 7 9];
Vt=[636 648 726 822 866 899 943 963];
%matlab拟合的初值选择是一个麻烦的问题
a0=[6 05 ];%这是V0,τ的初值,得根据你的问题选取,我这里也是随便取的,
A=lsqcurvefit(@fun,a0,t,Vt);
%下面你可以画一个图形做拟合对比
f=fun(A,t);
plot(t,f,'r',t,Vt,'-b')
legend('拟合','实际数据',2)
结果:
Local minimum possible
lsqcurvefit stopped because the final change in the sum of squares relative to
its initial value is less than the default value of the function tolerance
<stopping criteria details>
A =
555767167903105 350020448743878
function f =objec(x)
f=2(x(1))^2+2(x(2))^2-2(x(1))(x(2))-4(x(1))-6(x(2));
endfunction [c,d]=straints( x)
c=[(x(1))+5(x(2))-5;
2(x(1))^2-x(2);
-x(1);
-x(2)];
d=[];
end
clc;clear
[x,fval,exitflag]=fmincon('objec',[0,075],[],[],[],[],[],[],'straints')
结果:
t没有赋值,应增加
t=0:pi/10:2pi;
x6=cos(2pi4t)+cos(2pi8t)+cos(2pi10t)
x6 =
Columns 1 through 7
30000 -04085 -02174 -17345 10167 -13824 04940
Columns 8 through 14
04519 24023 -12501 -11061 -11005 11027 -04440
Columns 15 through 21
05518 09832 09226 -16377 -16154 03593 10667
以上就是关于matlab编程问题全部的内容,包括:matlab编程问题、matlab编程题,求大神、一道Matlab的编程题 求各位大佬等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)