用matlab求分段函数程序

用matlab求分段函数程序,第1张

这样:

clc,clear,close all

x = -5:1:5;

y(x>=1) = 3x(x>=1)^2+1;

y(x>-1 && x<1) = 0;

y(x<=-1) = -x(x<=-1)^3+2;

figure,plot(x,y)

扩展资料:

注意事项

语法

if expression

statements

end

描述

MATLAB计算表达式,如果产生一个逻辑真或者非零结果,然后就执行一条或者多条MATLAB命令语句。

当有嵌套if时,每一个if必须和一个相应的end匹配。

当你在if语句里面嵌套使用else if或者else时,一般的格式如下:

if expression1

statements1

elseif expression2

statements2

else

statements3

end

参考代码:

f=@(t)quadl(@(x)37415e8x^-5(27183^(143879e4/(xt))-1)^(-1),75,14)0975/pi-2167;

ezplot(f,[eps 500])

t0=fzero(f,10)

hold on

plot(t0,f(t0),'ro')

plot(xlim,[0 0],'g--')

hold off

求出的t值为(不太清晰,里面部分数据可能不准确,请自行检查)

t0 =

  4130115

Len = @(A,B,C) sqrt(sum([(B-C)^2; (C-A)^2; (A-B)^2],2));

A = [2,5,6]; B = [11,3,8]; C = [5,1,11];

Len(A,B,C)%角点ABC分别对应的边长

结果:

ans =

    70000

    70711

    94340

Set oDoc = ActiveDocument

Set oTable= oDocTablesAdd(Range:=oDocRange(Start:=0, End:=0), NumRows

:=3,NumColumns:=4)

iCount = 1

For Each oCell In oTableRangeCells

oCellRangeInsertAfter "第 "& iCount & "单元格 "

iCount = iCount + 1

Next oCell

oTableAutoFormat Format:=wdTableFormatColorful2,ApplyBorders:=True, App

lyFont:=True, ApplyColor:=True

小括号中逗号前后是二维索引,中括号中则是个一维索引。

[n 1:n-1]就是先取最后一个值,然后从第一个开始取值至倒数最后一个。

(1:n,[n 1:n-1])是个二维数组的索引。

function [x, k, index]=Jacobi(A, b, ep, it_max)

% 求解线性方程组的Jacobi迭代法,其中

% A --- 方程组的系数矩阵

% b --- 方程组的右端项

% ep --- 精度要求。省缺为1e-5

% it_max --- 最大迭代次数,省缺为100

% x --- 方程组的解

% k --- 迭代次数

% index --- index=1表示迭代收敛到指定要求;

% index=0表示迭代失败

if nargin <4 it_max=100; end %输入参数少于4时,默认最大迭代次数为100

if nargin <3 ep=1e-5; end %输入参数少于3时,默认精度要求为1e-5

n=length(A); %矢量或矩阵A的列长度,即方程的个数

k=0; %初值为0

x=zeros(n,1); y=zeros(n,1); index=1;%初值设置

while 1 %while-end 循环开始

for i=1:n %i循环次数

y(i)=b(i); %给y赋值

for j=1:n %j循环次数

if j~=i %条件判断,j≠i时,

y(i)=y(i)-A(i,j)x(j); %y(i)的值修改

end

end

if abs(A(i,i))<1e-10 || k==it_max %A的主对角线元素的绝对值小于1e-10或k=最大迭代次数时,

index=0; return; %表明迭代失败

end

y(i)=y(i)/A(i,i); %判断,j=i时,y(i)的值修改

end

if norm(y-x,inf)<ep %判断,y-x的无穷范数小于精度要求,

break; %返回下一步,继续计算

end

x=y; k=k+1; %x得到y值,计算总迭代次数k

end %while-end 循环结束

1、A=pi/3[0:6]: 产生0°、60°、120°360°共7个角度值。

2、rexp(iy)是一个复数的指数表达方式,对应平面中的一个点,设为Z,相应的y为向量OZ与X轴正向的夹角,r为向量OZ的模。

因此plot(rexp(iA),'k','linewidth',2);表示在平面上依次绘制7个点,并连线,连线宽度为2,颜色为'k'。最终图形g1为一正6边形。

3、real(rexp(iA))、imag(rexp(iA))分别取出6边形顶点的x、y坐标值(对应于复数的实部real、虚部imag)。然后用fill函数填充区域,set(g1,'FaceColor',[1,05,0])设置颜色。

4、g2与g1大同小异,只是半径rc、角度aa与g1不同。由于所有点的半径都为rc,因此g2为图形为圆。

5、text(0,0,'1','fontsize',10);在圆点处添加数字1。

这是我的理解,供你参考。

matlab的fsolve函数可以这样来改所求的函数。

1、用函数体,自定义所求的函数。即

function y=fun(x)

具体的函数表达式

end

2、初定x的初值,即

x0=[x01,x02,x03,]

3、用fsolve函数求其数值解,即

[x,fval,exitflag] =fsolve(fun,x0)

当exitflag=1时,说明求解成功。x是方程的数值解,fval是函数值

以上就是关于用matlab求分段函数程序全部的内容,包括:用matlab求分段函数程序、请问,用MATLAB怎么编写程序求出t值,关于积分解方程,谢谢大家。、求大神解答怎么用Matlab编写程序求已知顶点的三角形各边的长,题目如下。万分感谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存